村子裡有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三人的妻子會把自己的男人殺 死。
思路關鍵點:
問題的乙個關鍵點是,首先村里的妻子需要先把出軌的人數判斷出來,然後根據自己的所知,推斷出自己的男人是否出軌。然後,一起行動。。。
有意思的面試題
1.10個箱子,每個箱子10個蘋果,其中乙個箱子的蘋果是9兩 個,其他的都是1斤 個。要求利用乙個秤,只秤一次,找出那個裝9兩 個的箱子。1,他們都是很聰明的人 2,他們的原則是先求保命,再去多殺人 3,100顆不必都分完 4,若有重複的情況,則也算最大或最小,一併處死 3.現在北京有一套房子,20...
幾個有意思的面試題
1,abcdx9 dcba 因為9乘a不進製所以a只能是1 9乘d得個位是1所以d只能是9 同樣9乘b也不能進製只有1和0,1已屬a所以b只能是0 9乘9進8要想第二位為0,乘9的個位上必須是2,c就只有8了 所以abcd 1089 2,一艘輪船從甲港順水航行到乙港,立即逆水返回甲港。共用8小時。已...
說幾道有意思的面試題
很長時間沒有寫部落格,突然想起來現在的公司的面試題。選了比較有意思的幾道題,寫一篇部落格談一談。祖傳 的重構 題目描述 現在有乙個函式add 裡面 很複雜實現了一系列的功能。不能不去重構他會波及太大,所以不能改函式裡面的 但新需求是要知道在 呼叫了這個函式,這個函式被呼叫了多少次 count 和被例...