挑选出100瓶药水中有且仅有1瓶毒药水所需的最少老鼠数量?
问题描述
100 瓶水其中有一瓶有毒,用老鼠试毒老鼠试后 7 天会死掉,需要多少只老鼠才能试出哪瓶水有毒?
题目解析
第一步:编码
- 给这 100 瓶水编号,1 到 100。
- 找来七只老鼠,给它们编号:A B C D E F G。把 G 当作最低位,A 当作最高位,它们各自有两个状态分别是“活”和“死”。把“活”当作 0,“死”当作 1,那么它们就可以组成一组二进制数。
- 例如:
第二步:喂药
- 比如39,二进制就是100111,我加个0就是0100111,那么就把水喂给二、五、六、七号老鼠
- 比如67就是1000011,那么就是把水喂给一、六、七号老鼠
- 比如3就是11,补上0的位置就是0000011,那么就把水喂给六、七号老鼠
第三步:计算
- 七天后,看七个老鼠哪个活着哪个死了
- 比如二、三、五、六、七都死了,那么写成二进制就是0110111,第一个0其实是占位的,那么就是110111,换算成十进制就是55
题目
有1000个一模一样的瓶子,其中有999瓶是普通的水,有1瓶是毒药。任何喝下毒药的生命都会在一星期之后死亡。现在你只有10只小白鼠和1个星期的时间,如何检验出哪个瓶子有毒药?
解析