50只狗(IBM面试题)
2006-12-21 16:55
190 查看
一个大院子里住了50户人家,每家都养了一条狗,有一天他们接到通知说院子里有狗生病了,并要求所有主人在发现自己家狗生病的当天就要把狗枪杀掉。然而所有主人和他们的狗都不能够离开自己的房子,主人与主人之间也不能通过任何方式进行沟通,他们能做的只是通过窗户观察别人家的狗是否生病从而推断自己的狗病否。(就是说,每个主人只能看出其他49家的狗是不是生病,单单没法看出而只能是根据逻辑推断出自己的狗是不是生病)
第一天没有枪声,第二天还是没有枪声,第三天传出一阵枪声,问有多少条狗被枪杀。
解答:
如果只有一只狗病了,假设主人是A,那么A看到其他家的狗都是好的,所以肯定知道是自己的狗病了,所以第一天就会听到枪声,所以肯定不是一只狗病了,是多于一只
如果是二只狗病了,主人分别是A,B. A看到B家是只病狗,心想如果病狗是两只的话,自己的肯定是病狗,就会杀死自己的狗,同样B看到A家是病狗,心想如果病狗是两只的话,自己的肯定是病狗,就会杀死自己的狗. 所以病狗不会是两只而是多于两只
如果病狗是三只,假设主人分别是A,B,C .A看到B,C 家的狗是病狗,心想如果病狗只有两只,他们就会推理出来而杀狗,所以病狗不只是两只,但是他又没看到其他的,所以他认定自己家的是病狗,而杀死,同理B,C也会杀死,所以有三只病狗
说明:感觉这样推理有些问题,望大家指教
第一天没有枪声,第二天还是没有枪声,第三天传出一阵枪声,问有多少条狗被枪杀。
解答:
如果只有一只狗病了,假设主人是A,那么A看到其他家的狗都是好的,所以肯定知道是自己的狗病了,所以第一天就会听到枪声,所以肯定不是一只狗病了,是多于一只
如果是二只狗病了,主人分别是A,B. A看到B家是只病狗,心想如果病狗是两只的话,自己的肯定是病狗,就会杀死自己的狗,同样B看到A家是病狗,心想如果病狗是两只的话,自己的肯定是病狗,就会杀死自己的狗. 所以病狗不会是两只而是多于两只
如果病狗是三只,假设主人分别是A,B,C .A看到B,C 家的狗是病狗,心想如果病狗只有两只,他们就会推理出来而杀狗,所以病狗不只是两只,但是他又没看到其他的,所以他认定自己家的是病狗,而杀死,同理B,C也会杀死,所以有三只病狗
说明:感觉这样推理有些问题,望大家指教
相关文章推荐
- IBM、SUN公司的Java面试题
- 微软/IBM面试题之帽子问题、死狗问题
- IBM 经典销售面试题:营销理念的终极挑战
- IBM 经典销售面试题:营销理念的终极挑战
- IBM Java面试题
- [绝对挑战]IBM面试题(附答案)
- IBM java 英文面试题(附参考答案)
- IBM的Java面试题集
- IBM 经典销售面试题:营销理念的终极挑战
- 针对IBM一道面试题及解答以后的一个思考,来自java编程思想
- sun和IBM面试题
- IBM 经典销售面试题:营销理念的终极挑战
- IBM的面试题
- IBM面试题试解(关于50条狗、50个人、病狗)
- IBM面试题:一个人花8块钱买了一只鸡
- IBM Java面试题,String s = "a" + "b" + "c" + "d" + "e"; 问此语句共创建了几个对象
- IBM面试题试解(关于50条狗、50个人、病狗)
- IBM java面试题
- IBM面试题:村子里有几条病狗
- IBM ETL面试题