毒药和蒸馏水

问题:

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

分析:

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

第一瓶标号是 00001, 

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

.....

第31瓶标号是 11111,

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

比如:

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

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


你可能感兴趣的:(毒药和蒸馏水)