50只狗(IBM面试题)

  一个大院子里住了50户人家,每家都养了一条狗,有一天他们接到通知说院子里有狗生病了,并要求所有主人在发现自己家狗生病的当天就要把狗枪杀掉。然而所有主人和他们的狗都不能够离开自己的房子,主人与主人之间也不能通过任何方式进行沟通,他们能做的只是通过窗户观察别人家的狗是否生病从而推断自己的狗病否。(就是说,每个主人只能看出其他49家的狗是不是生病,单单没法看出而只能是根据逻辑推断出自己的狗是不是生病)  
   
  第一天没有枪声,第二天还是没有枪声,第三天传出一阵枪声,问有多少条狗被枪杀。     

 

解答:

如果只有一只狗病了,假设主人是A,那么A看到其他家的狗都是好的,所以肯定知道是自己的狗病了,所以第一天就会听到枪声,所以肯定不是一只狗病了,是多于一只

如果是二只狗病了,主人分别是A,B.         A看到B家是只病狗,心想如果病狗是两只的话,自己的肯定是病狗,就会杀死自己的狗,同样B看到A家是病狗,心想如果病狗是两只的话,自己的肯定是病狗,就会杀死自己的狗.  所以病狗不会是两只而是多于两只

如果病狗是三只,假设主人分别是A,B,C .A看到B,C 家的狗是病狗,心想如果病狗只有两只,他们就会推理出来而杀狗,所以病狗不只是两只,但是他又没看到其他的,所以他认定自己家的是病狗,而杀死,同理B,C也会杀死,所以有三只病狗

 

说明:感觉这样推理有些问题,望大家指教

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值