关于1000杯水一杯有毒用10鼠检验问题解答 by强
** 运用二进制解决这个问题**
导语:首先要了解有关二进制的知识“二进制是用0和1两个数码来表示的数。它的基数为2,进位规则为‘逢二进一’,类似于我们所熟悉的十进制”。
分析:用十进制表示这1000杯水,可以用 1 ,2,3 ,4, 5……1000这一千个数字表示,同理,也可以用二进制来表示:0000000000,0000000001,0000000010,……1111101000。运算方法可参考
(1000÷2 = 500 余 0
500÷2 = 250 余 0
250÷2 = 125 余 0
125÷2 = 62 余 1
62÷2 = 31 余 0
31÷2 = 15 余 1
15÷2 = 7 余 1
7÷2 = 3 余 1
3÷2 = 1 余 1
1÷2 = 0 余 1
反向读余数为1111101000)
于是,我们可以开始解决这个问题了
用二进制表示的1000杯水编号写下来,如0000000001 0000000010 0000101001
然后就是喝水环节,怎么喝呢
如上面的三杯水的安排为
1:第十只鼠喝
2:第九只鼠喝
3:第五第七第十只喝
以此类推 把这一千杯水分配给10只鼠;
然后 结果就会出现一部分小鼠死亡(这就意味着我们可以得出哪杯水有毒了)
如: 第3,5,7,8,9,这5只鼠死亡
对应为 0010101110这杯水
十进制为 174(运算为:1
2
7+1*2
5+1
2
3+1*2
2+1*2^1)
意思是 第174杯水有毒