金鱼怎么睡觉:逻辑推理题

来源:百度文库 编辑:中科新闻网 时间:2024/05/04 07:17:39
有一个村庄,有50户人家,每家有一只狗,狗生了传染病(不传染),村庄规定,病狗必须枪毙,而且只能枪毙自己家的狗,第一天地二天都没有枪响,第三天传来一阵枪响,请问有几只病狗,请详细写出推理过程。
谢谢一楼的解释,可是我还是不太明白,那要是有4只病狗呢,这三只狗岂不是杀早了?

楼主这个题目还少了条件的!就每个猎人不能看自家的狗,另外每天打一次狗!
每个猎人都不想打自家的狗!所以只要看到外面有病狗,就认为自家的狗是好的!
假设有N条病狗那么病狗的主人看到外面的病狗就有N-1只,
如果N=1,那么病狗的主人看到外面的狗都是好狗,那么他肯定知道家里的狗是病狗了,所以第一次打狗,就是第一天应该有枪想,所以N不等于1
如果N=2,那么病狗的主人能看到一条另外猎人的病狗,因为第一天另外一个猎人没有打狗,说明另外一个猎人也看到病狗,那么第二天这两个猎人肯定知道自家的狗是病狗!但是第二天还是没有枪响,那说明肯定不是两条病狗!
如果N=3,那么每个病狗的主人可以看到2条病狗!前两天都没有人杀,那说明肯定病狗肯定多于两只,但是他只看到两只病狗,说明自家的狗也病了!所以第三天有枪响!
如果有四条病狗,那么病狗的主任可以看到3条病狗,第三天的时候病狗的主人只知道病狗是多余2,但是他已经看到3条,所以他是不会开枪打自己的狗的!要在地4天才会打!
这样推理下去可以得出第几天枪响,就有多少只病狗!

3条
分析:
第一天,如果每个人看到其他49只狗都活蹦乱跳,那么他都不用看自己的狗,根据前提1,每个人都明白,院子里至少有一只病狗,必然是自己的狗病了,那么根据条件2,第一天就会响枪。由于第一天没有枪声,说明假设不对,即:每个人看到其他49只狗都活蹦乱跳是不对的,反过来说每个人至少能够看到一只病狗。
现在的问题是:每个人都看到了至少一只病狗,可为什么没有响枪呢?因为病狗的主人看到的是别人家的病狗,如果他看到的病狗的主人枪杀了自己的狗,他会想:谢天谢地,我家的狗没病,在第一天,在他所看到的病狗的主人先枪杀他的狗之前,他是不敢贸然杀死自己的狗的,如果他这样做,反而会误导他所看到的那个病狗的主人,他会认为自己的狗没有病。第一天没有枪声,那么每个人都知道,院子里至少有两只病狗。
到了第二天,如果每个人都看到48只活蹦乱跳的狗和一只病狗,那么不用犹豫,自己的狗病了,杀吧。可第二天还是没有枪声,那么每个人都知道,院子里至少有三只病狗,那只能等到第三天。
到了第三天,如果每个人都看到47只活蹦乱跳的狗和两只病狗,那么不用犹豫,自己的狗也病了,杀吧。第三天传出一阵枪声,说明有三只狗被杀。

3
因为第几天枪响,就有多少只病狗!