分辨毒药和蒸馏水

来源:互联网 发布:守望先锋数据查询不了 编辑:程序博客网 时间:2024/03/29 23:19

问题:

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

分析:

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

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

.....

第31瓶标号是 11111,

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

比如:

第二只老鼠和第三只老鼠 嗝了, 那么,很明显, 毒药的编号一定是 01100,因为如果毒药的编号是 01000,那么第三只老鼠不会死,同理,如果毒药的编号是 01110,那么,应该有三只老鼠会死亡。 所以,通过死亡老鼠的编号,我们可以确认毒药的编号。

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


原创粉丝点击