[淘宝]小白鼠与毒药问题
题目源自淘宝笔试
Q:我们有很多瓶无色的液体,其中有一瓶是毒药,其它都是蒸馏水,实验的小白鼠喝了以后会在5分钟后死亡,而喝到蒸馏水的小白鼠则一切正常。现在有5只小白鼠,请问一下,我们用这五只小白鼠,5分钟的时间,能够检测多少瓶液体的成分?
A、5瓶 B、6瓶 C、31瓶 D、32瓶
很多瓶液体中有一瓶为毒药,5分钟时间测出成分,因此5只小白鼠需要同时进行试验。
题目类似于5只手指可以表示多少数字,可以联想到5位二进制数,有2^5=32种表现方式,即可以有32瓶液体。
将5只小白鼠分别映射到5位二进制数每一位上,如下
第一只:_ _ _ _ 1
第二只:_ _ _ 1 _
第三只:_ _ 1 _ _
第四只:_ 1 _ _ _
第五只:1 _ _ _ _
将以1结尾的数目的瓶子部分液体混合,给第一只小白鼠喝,即将1、3、5、7、9、11、13、15、17、19、21、23、25、27、29、31号共16瓶的部分液体混合,给第一只小白鼠喝。后面类推。
以1表示死亡,0表示正常,若第一只、第四只死亡,即01001=9瓶液体是毒药。
这里还需要注意一个情况,当5只小白鼠都正常,即00000,题目中是很多瓶液体,因此只能判定前31瓶液体不是毒药,毒药存在于其他瓶子中。
因此可以检测2^5-1=31瓶,选C。