一道数学逻辑题(经典的)

问题描述:

一道数学逻辑题(经典的)
一个村子里,有50户人家,每家都养了一条狗.现在,发现村子里面出现了n只疯狗,村里规定,谁要是发现了自己的狗是疯狗,就要将自己的狗枪毙.但问题是,村子里面的人只能看出别人家的狗是不是疯狗,而不能看出自己的狗是不是疯的,如果看出别人家的狗是疯狗,也不能告诉别人.于是大家开始观察,第一天晚上,没有枪声,第二天晚上,没有枪声,第三天晚上,枪声响起(具体几枪不清楚),问村子里有几只疯狗?
1个回答 分类:综合 2014-10-22

问题解答:

我来补答
原题应该是这样的:
有一个小村庄住着50户人家,每户人家都养了一只狗.有一次村子里出疯狗了.大家在一起商议:每天上午大家都要到每一户人家去查看狗,一旦发现自己家的狗是疯狗时,必须在当晚开枪把自家的疯狗杀死.这村子的人家都有这样一种本领,就是能看出别人家的狗到底是不是疯狗,但是看不出自家的狗是不是疯狗.并且互相不能告知真相.第一天,第二天,村子没有枪声,到了第三天晚,村子里响起了枪声,村子里所有的疯狗都被杀死了.问村子里到底有多少条疯狗?
首先:每个人都清楚疯狗是一定存在的
假设:有一个人发现他所观察的除自己外的49家里有48家是好狗,1家是疯狗,
由于对自己家的狗无法判断,因此这时候他得出结论:至少有1只疯狗,至多2只(加上自己家的)
如果是1,那么有49家的是好狗,自己属于“49家好狗阵营”;如果是2,那么有48家好狗,自己属于“2家疯狗阵营”
虽然他无发确定是1还是2,但是他会推理:
假如是1,即自己的狗也是好狗,只有他看到那只狗是唯一的疯狗,设其主人为a
那么a就会看到别人的狗都是好狗,而a又清楚一定存在疯狗,这只能是a自己的狗
因此a第一天就会开枪杀狗.
但是第一天并没有人开枪,
这就说明a并没有看到“别人的狗都是好狗”,
因此疯狗数不是1而是2,“有一个人”自己不属于“49家好狗阵营”而是属于“2家坏狗阵营”——除了自己和a之外的48家是好狗
所以第二天他就会开枪杀死自己的狗
a和“有一个人”的情形完全一样,基于同样的推理也会在第二天开枪,
所以,如果第二天有人开枪意味着疯狗数是2
但是第二天没人开枪,
因此“有一个人发现他所观察的除自己外的49家里有48家是好狗,1家是病狗”这个假设不成立
疯狗数不是2,当然更不是1
继续假设:有一个人发现他所观察的除自己外的49家里有47家是好狗,2家是疯狗
由于对自己家的狗无法判断,因此这时候他得出结论:至少有2只疯狗,至多3只(加上自己家的)
如果是2,那么有48家的是好狗,自己属于“48家好狗阵营”;如果是3,那么有47家好狗,自己属于“3家疯狗阵营”
虽然他无发确定是2还是3,但是他会推理:
假如是2,即自己的狗也是好狗,他看到那2只狗是全部疯狗,设其主人为a、b
a或b也都会做推理,例如a会推理病狗数是1或2,推理过程前面已经说了
如果是2,第二天a和b都会开枪,但第二天还是没人开枪
所以只能是3,也就是说“有一个人”自己不属于“48家好狗阵营”而是属于“3家病狗阵营”
所以第三天有人开枪,就说明“有一个人”、a、b都意识到自己的狗是病狗,他们就开枪了.
结论:推理可一直进行下去,第几天开枪就有几条疯狗
 
 
展开全文阅读
剩余:2000
下一页:老师第一十三题