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/C,第2天都没开枪,说明病狗数不止2头,至少是3头(其实就是3头)。但我检测的只有2头,说明,我自己的狗是病的!干掉!
|
…… |
|
n | 所有狗都有病,那么,没人都检测到n-1头狗有病。 在第n-1天,大家都没有理由怀疑自己的狗。但是到了第n天,说明,至少有n条狗有病了(其实就是n头),而自己检测到只有n-1头。那就说明自己的是病狗。齐刷刷的全部枪毙! |