有多少只病狗
一个村庄有64户人家,每户人家养了一只狗,共64只狗。忽然有一天狗瘟出现了,并且已经断定村子里一定有病狗,但不知道谁家的狗生病了,病狗是能够被看出来的,而且病狗必须要被杀掉。
要求是:每户人家只能看别人家的狗,但只能有权杀自己的狗;而且人与人之间必须不能交流。
第一天过去了,村子里没有听到枪声;第二天过去了,村子里依然没有听到枪声;第三天,村子里听到了一阵枪声。
现在请问:村子里到底有多少只病狗?
答案:第几天枪响就有几只。
分析如下:
狗主人观察外面时有两种情况,1、其他狗有生病的 2、其他狗全为正常狗。前者并不能立刻肯定自己的狗有没有生病,后者则可以立刻肯定自己的狗生病了。
一、如果只有一只病狗,则只有这只狗主人看见别人的狗全部是正常的,其他人则看到外面有一只病狗。
其他人看到外面有一只病狗,并不能确定自己的狗没有生病,所以他不会开枪,而病狗主人看到外面所有狗都正常,因而可以肯定自己的狗生病,所以第一天就干掉它了。其他人这时就能知道,自己的肯定正常。
二、两只病狗的情况
病狗主人发现,外面有一只病狗,而那只病狗第一天并没有被干掉,所以可以肯定,还有其他病狗。自己看到的其他的狗都是正常的,那么肯定,自己的狗也生病了,于是,第二天,举枪
正常狗的主人看见外面有两只病狗,他不确定自己的狗是否生病,所以会一直等到第三天,而这之前结果已经出来了。
三、跟上面相同,推到N条病狗的情况也成立。
