15瓶水,只有一瓶有毒,至少几只小白鼠一次性试出来?
使用二进制的方法解决
数字 | 二进制表示 |
---|
1 | 0001 |
2 | 0010 |
3 | 0011 |
4 | 0100 |
5 | 0101 |
6 | 0110 |
7 | 0111 |
8 | 1000 |
9 | 1001 |
10 | 1010 |
11 | 1011 |
12 | 1100 |
13 | 1101 |
14 | 1110 |
15 | 1111 |
最少用4只小白鼠,1表示水有毒,喝水后死亡。
第一只每瓶水喝一口后,如果死了则表示有毒的水在编号1-7之中,否则在8-15之中;
第二只每瓶水喝一口后,如果死了则表示有毒的水在编号4-7或12-15之中,否则在其他瓶之中,再结合第一瓶水试喝的结果确定范围;
以此类推,每个数字的二进制表示都是独一无二的,最终根据4只鼠的存货状况确定哪瓶水有毒。