一个村子里有50个人,每个人都养1口猪,其中有好猪也有病猪,现在村民想杀了病猪,但是他们不知道一共有多少病猪,也不知道自己养的是不是病猪,但是他们知道别人的是不是病猪。假设他们不会沟通,每个人只能杀自己的猪。第1天没有猪被杀,第2天也没有,一直到第7天才有猪被杀,问共有多少病猪?
共有7口病猪。
首先有一个前提条件“村民都是理性的人,有一定的逻辑思维能力”。
如果只有1口,那么病猪的主人看到了另外49口好猪,就会杀了自己的猪,但第一天没有响声。说明看到了其他的村民有病猪,说明不止1口。因为1口病猪肯定会在第一天晚被杀掉。
如果有2口,那么病猪的主人看到了其他的48口好猪和1口病猪。他判断:如果自己的猪是好猪,那么就只有1口病猪,这肯定不可能。因为1口病猪肯定会在第1天晚被杀掉;如果自己的猪是病猪,就会有人杀了它,那天晚上就会有枪声。但没有,所以每个村民都看到了2口以上的病猪。
如果有3口,那么病猪的主人会看到47口好猪和2口病猪。他判断:如果自己的猪是好猪,那么就只有2口病猪,这肯定不可能。因为2口病猪肯定会在第2天晚被杀掉;如果自己的猪是病猪,就会有人杀了它,那天晚上就会有枪声。但没有,所以每个村民都看到了3口以上的病猪。
如果有4口,那么病猪的主人会看到46口好猪和3口病猪。他判断:如果自己的猪是好猪,那么就只有3口病猪,这肯定不可能。因为3口病猪肯定会在第3天晚被杀掉;如果自己的猪是病猪,就会有人杀了它,那天晚上就会有枪声。但没有,所以每个村民都看到了4口以上的病猪。
像这样推下去,第几天响起枪声,就证明有几口病猪。