一個有意思的面試題(1)

題目:

村子裏有100對夫妻,其中每個丈夫都瞞着自己的妻子偷情。村裏的每個妻子都能立即發現除自己丈夫之外的其他男人是否偷情,唯獨不知道她自己的丈夫到底有沒有偷情。村裏的規矩不容忍通姦。任何一個妻子,一旦能證明自己的男人偷情,就必須當天把他殺死。村裏的女人全都嚴格照此規矩辦事。一天,女頭領出來宣佈,村裏至少有一個丈夫偷情。請問接下來會發生什麼事?

答案:

這是一個典型的遞歸問題
一旦所有的妻子都知道至少有一個男人出軌,我們就可以按遞歸方式來看待這個流程。先讓我們假設只有一個丈夫偷情。則他的妻子見不到任何偷情的男人,因此知道這個人就是自己丈夫,她當天就會殺了他。假如有兩個丈夫偷情,則他倆的妻子只知道不是自己丈夫的那一個男人偷情。因此她會等上一天看那個人有沒有被殺死。假如第一天沒人被殺死,她就能確定她自己的丈夫也偷了情。依此類推,假如有100個丈夫偷情,則他們能安全活上99天,直到100天時,所有妻子把他們全都殺死。

詳解:

(1)只有一個男人A出軌
因爲A的妻子知道其他的男人沒有出軌,則可以斷定A出軌了。所以第一天就把A殺了。

(2)有兩個男人A、B出軌
A和B的妻子知道其他98個男人沒有出軌,但是不確定自己的男人有沒有出軌。所以A的妻子在看B的妻子是否殺A,B的妻子也在看A的妻子是否殺B。
原因:假設第1天A就把自己的男人殺了,則證明B沒有出軌,因爲A的妻子知道B有沒有出軌。
但是第1天發現沒有人被殺,則可以判斷村裏有2個男人出軌!!!A和B的妻子知道其他98個男人沒有問題,則立即斷定A和B出軌了。

(3)有三個男人A、B、C出軌
同理,如果A、B、C出軌,則和其他97人沒有關係了。
根據(2)中的邏輯,A、B、C三人的妻子則會等到第2天看是否有人被殺,如果沒有,則斷定出村裏有3人出軌。第三天A、B、C三人的妻子會把自己的男人殺 死。
思路關鍵點:
問題的一個關鍵點是,首先村裏的妻子需要先把出軌的人數判斷出來,然後根據自己的所知,推斷出自己的男人是否出軌。然後,一起行動。。。

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