一个有意思的面试题(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三人的妻子会把自己的男人杀 死。
思路关键点:
问题的一个关键点是,首先村里的妻子需要先把出轨的人数判断出来,然后根据自己的所知,推断出自己的男人是否出轨。然后,一起行动。。。

猜你喜欢

转载自blog.csdn.net/mengmengdastyle/article/details/81330439
今日推荐