一個村子住着很多戶人家,並且每家每戶都養着一條狗.

一個村子住着很多戶人家,並且每家每戶都養着一條狗.一天村長髮現村子裏有少數狗生病了,但他也不知道到底是那條狗生病了.於是村長就召集全村人開會,說:“咱村子裏有狗生病了,如果你看到了生病的狗和沒生病的狗後你可以判斷出哪隻狗是病狗.從現在起,大家回到家後就不要看自己的狗了,明天咱們大家都去別人家看別人家的狗,在看完別人家的狗後,如果你可以推斷出自己家的狗生病了.就拿槍打死自己的狗.”結果,第一天沒聽見槍聲,第二天沒聽見槍聲,第三天聽見了槍聲.問村子一共有幾條病狗.(提示:1.一聲槍響代表打死一條狗.2.村民不允許互相討論只能自己判斷.3.村名都非常聰明,不會發生錯殺現象.)

# -*- coding: utf-8 -*-#
persons = 5
bad_dog_list = (0, 1, 3)

# 第一天,只要看不到壞狗,自己的狗肯定是壞狗,經過測試bad_dog_list.length >=2
# 第二天,如果是2條壞狗,則0號人,只看到一條壞狗,自己狗必然是壞狗,經過測試bad_dog_list.length >=3
for day in (1, 2, 3, 4, 5):
    for person_index in range(persons):
        bad_dog = 0
        for dog_index in range(persons):
            if (person_index != dog_index):
                if (dog_index in bad_dog_list):
                    bad_dog += 1
                    print('第{0}天'.format(day), (person_index, dog_index), "look bad dog")
                else:
                    print((person_index, dog_index))
        if (bad_dog == day - 1):
            print('第{0}天,第{1}號人,需要殺狗了'.format(day, person_index))

python代碼推斷一下的代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章