查病狗(一面试题)

http://doublecqw.iteye.com/blog/967648

不知道啥的,链到这个帅哥的blog然后翻了一下,看到了一个面试题。

 

问题:

n个人,每人一头狗。这n头狗中并有病狗,然后每个人的都能检测出其他n-1个人的病狗(不能检测自己的)。经过推断后,如果猜测到自己的狗是病狗,就把自己的狗扑街掉!(没错,这些都足够高的IQ)

第一天没枪声,第二天也没有,第三天传来一阵阵枪声,问,有几头病狗。

 

 

答案:

病狗数(最多就是自己的检测数+1

 

1

那么,肯定有一个人A没有检测到病狗。但条件中有明确说n条狗中有病狗!

第一天,        A就会把自己的狗干掉!

2

A,B两人检测到了1条病狗,其他人都检测到了两头病狗。

第一天,        没有人杀狗的,因为大家都检测到了至少一条病狗了!

第二天,        这一天比较特殊。

 假设你是C,因为你检测到了2头病狗,所以,第二天你肯定没理由怀疑自己。

 假设你是A/B第一天都没开枪,说明病狗数不止一头,至少是两头(其实就是2头,如果是3头,那我知道能检测到2头)。但我检测的只有一头,说明,我自己的狗是病的!干掉!

(答案:3

A,B,C两人检测到了2条病狗,其他人都检测到了3头病狗。

第一天,        没有人杀狗的,因为大家都检测到了至少一条病狗了!

第二天,        没有人杀狗的,因为大家都检测到了至少2条病狗了!

第三天,        这一天比较特殊。

假设你是D,因为你检测到了3头病狗,所以,第3天你肯定没理由怀疑自己。

 假设你是A/B/C2天都没开枪,说明病狗数不止2头,至少是3头(其实就是3头)。但我检测的只有2头,说明,我自己的狗是病的!干掉!

 

……

 

n

所有狗都有病,那么,没人都检测到n-1头狗有病。

在第n-1天,大家都没有理由怀疑自己的狗。但是到了第n天,说明,至少有n条狗有病了(其实就是n头),而自己检测到只有n-1头。那就说明自己的是病狗。齐刷刷的全部枪毙!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值