摘要
本文从头开始推理了这道经典题目,并简单地与二进制思想做了对比。
正文
偶然间又看到这样一道经典题目——“8瓶酒一瓶有毒,用小鼠测试。每次测试结果8小时后才会得出,而你只有8个小时的时间。问最少需要()人测试? ”
大多数马上就会反应到这就是个典型的10进制转2进制的题。我还好,我也想到这个方向了,但我还是没有想到如何在这个方向上解出来这个题。所以自己试着从头开始推断一下。
起初我是这么想的,既然是要找至少多少只,那先来8只,怎么用?很简单,1只试1瓶,看哪只有反应。
有7只该怎么用?也简单,1~7号小鼠喝1~7号瓶里的水,8号瓶不用,若1~7号小鼠里有反应,也可知有毒的在1~7号瓶里,若无反应,则8号瓶有毒。
有6只该怎么用?可以这么用:
鼠1 | 鼠2 | 鼠3 | 鼠4 | 鼠5 | 鼠6 |
1 | 2 | 3 | 4 | 5 | 6 |
2 | 3 | 4 | 5 | 6 | 7 |
让1号鼠号1、2号瓶,2号鼠喝2、3,...,6号鼠喝6、7号瓶。这样,若1号瓶或7号瓶有毒,则只会出现“鼠1或鼠6分别会有反应”这两种情况;若2号瓶有毒,则只会出现“只有鼠1和鼠2有反应”这一种情况;若3号瓶有毒,则只会出现“只有鼠2和鼠3有反应”这一种情况;...;若6号瓶有毒,则只有鼠5和鼠6会出现反应;若小鼠们都没反应,那就是8号瓶有毒了。
有5只该怎么用?与上同理,如表格所示:
鼠1 | 鼠2 | 鼠3 |