智力题-小白鼠试毒

转换为二进制

题目1:
有16瓶水,其中只有一瓶水有毒,小白鼠喝一滴之后一小时会死。请问最少用() 只小白鼠,在1小时内一定可以找出至少14瓶无毒的水?
答案为3只。
解析:
具体步骤:
将16瓶水两瓶为一组,组号标为A1-A8,三只小白鼠分别标号为b1、b2、b3。
A1,001,只让b1喝
A2,010,只让b2喝
A3,011,让b1、b2喝
A4,100,只让b3喝
A5,101,b1、b3喝
A6,110,b2、b3喝
A7,111,让b1、b2、b3喝
A8组不喝.

如果只有b1死了,b2、b3都活着,那么有毒的水在A1组里,剩下的14瓶无毒;如果只有b2死了,b1、b3都活着,则A2组有毒;如果b1、b2死,b3活,则A3组有毒;如果只有b3死了,b1、b2都活着,则A4组有毒;如果b1、b3死,b2活,则A5有毒;如果b2、b3死,b1活,则A6有毒;如果三只全死,A7组有毒;如果三只全活,A8有毒。

题目2:
有1000瓶水,其中有一瓶有毒,小白鼠只要尝一点带毒的水24小时后就会死亡至少要多少只小白鼠才能在24小时
至少要多少只小白鼠才能在24小时鉴别出哪瓶水有毒
答案是10只

解析:
给1000个瓶分别标上如下标签(10位长度):
0000000001 (第1瓶)
0000000010 (第2瓶)
0000000011 (第3瓶)
.
1111101000 (第1000瓶)
从编号最后1位是1的所有的瓶子里面取出1滴混在一起(比如从第一瓶,第三瓶,.里分别取出一滴混在一起)并标上记号为1.给第一个小白鼠喝。
从编号倒数第2位是1的所有的瓶子里面取出1滴混在一起并标上记号为2.给第2个小白鼠喝。
从编号倒数第3位是1的所有的瓶子里面取出1滴混在一起并标上记号为3.给第3个小白鼠喝。
从编号倒数第4位是1的所有的瓶子里面取出1滴混在一起并标上记号为4.给第4个小白鼠喝。
从编号倒数第5位是1的所有的瓶子里面取出1滴混在一起并标上记号为5.给第5个小白鼠喝。
从编号倒数第6位是1的所有的瓶子里面取出1滴混在一起并标上记号为6.给第6个小白鼠喝。
以此类推。。。。
24小时过去了,过来验尸吧:
如果只有第一个小白鼠死了。即00000 00001,则第1瓶有毒。
如果只有第1,4个小白鼠死了。即00000 01001,则第9瓶有毒。

你可能感兴趣的:(智力题)