查病狗(一面试题)

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头。那就说明自己的是病狗。齐刷刷的全部枪毙!

猜你喜欢

转载自winseclone.iteye.com/blog/1783571
今日推荐