毒药和蒸馏水

问题:

假设我们有很多瓶无色的液体(比如瓶数大于100瓶),其中有一瓶是毒药,其它都是蒸馏水,实验的小白鼠喝了以后会在5分钟后死亡,而喝到蒸馏水的小白鼠则一切正常。现在假设只有5只小白鼠,请问一下,我们用这五只小白鼠,5分钟的时间,最多能够检测多少瓶液体的成分?

分析:

这道题的解法非常的巧妙,它使用了二进制来标注每一瓶液体。

第一瓶标号是 00001, 

第二瓶标号是 00010, 
第三瓶标号是 00011,

.....

第31瓶标号是 11111,

然后,让第一只老鼠喝下第一个位数为1的所有液体,让第二只老鼠喝下第二位为1的所有液体,。。。,让第5只老鼠喝下第五位为1的所有液体,那么最后根据所有老鼠的状态,我们就可以唯一分辨出哪一瓶是毒药。

比如:

第二只老鼠和第三只老鼠嗝了, 那么,很明显, 毒药的编号一定是 01100,因为如果毒药的编号是 01000,那么第三只老鼠不会死,同理,如果毒药的编号是 01110,那么,应该有三只老鼠会死亡。 如果所有的老鼠都没有死亡,那么毒药一定存在于剩余的其它瓶液体里。所以,通过死亡老鼠的编号,我们可以确认毒药的编号。

转载请注明出处:blog.csdn.net/beiyetengqing


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值