一个村子里,有50户人家,每家都养了一条狗。现在,发现村子里面出现了n只疯狗,村里规定,谁要是发现了自己的狗是疯狗,就要将自己的狗枪毙。但问题是,村子里面的人只能看出别人家的狗是不是疯狗,而不能看出自己的狗是不是疯的,如果看出别人家的狗是疯狗,也不能告诉别人。于是大家开始观察,第一天晚上,没有枪声,第二天晚上,没有枪声,第三天晚上,枪声响起(具体几枪不清楚),问村子里有几只疯狗?
已知,N>=1. (为什么没人讨论N=0的问题?是我就要问,N只是N,可以有0条病狗嘛。呵呵,不过既然大家都默认N>1才有意义,那就取N>=1)
因此,第一天,没有枪响。排除N=1的情况。因为如果N=1,将会有一个人看不见任何病狗。而他当天就会开枪。事实并没有发生,因此,不存在一个人看不见病狗的情况,即N=1 不成立。
剩下的条件为N>1.
第二轮,已知条件为N>1. N是自然数,大于1,就必然>=2.每个人都知道至少有2条病狗。那么N=2不? 假设N=2,那么就会有一个人只看见1条病狗。那么这个人当天晚上就会开枪,事实上,他并没有开枪。 说明N=2,不成立。 因此N>2. 病狗数大于2条。
第三轮,已知条件N>2。 同理,每个人都知道病狗数至少为3条。 那么N=3不? 假设N=3,那么就必然有一个人只看见了2条病狗,而他晚上就会开枪。
事实上,晚上确实有人开枪了。 所以N=3 成立。
那么N>3 成立不?
假设病狗数为4条。
那么第一天,病狗主人每人看见了3条。不存在只看见0条的人。第一天不会响枪。
第2天,每个病狗主人还是看见了3条。不存在只看见1条的人。第二天不会响枪。
第3天,每个病狗主人还是看见了3条。不存在只看见2条的人。第三天不会响枪。
因此,N=4 不成立。
同理,N>4 不成立。
结论:本题有唯一解 N=3 3条病狗。