清水混毒【逻辑题】
题目
一百瓶清水里混入了和清水一模一样的毒药,我们无法从外观和气味上分辨出来。但是我们知道小白鼠不论摄入多少量的毒药都会立刻 s掉。
现在给你7只小白鼠和无限长的准备时间,准备时间忽略不计。在你准备完成之后,请问你是否要办法在一个小时之内区分出哪瓶是毒药?
4个条件:
1.不论摄入多少量
2.都会立刻s掉
3.7只小白鼠
4.无限长的准备时间
要求:
在一个小时之内区分出哪瓶是毒药?
题目
一百瓶清水里混入了和清水一模一样的毒药,我们无法从外观和气味上分辨出来。但是我们知道小白鼠不论摄入多少量的毒药都会在一个小时到两个小时 s掉。
现在给你7只小白鼠和无限长的准备时间,准备时间忽略不计。在你准备完成之后,请问你是否要办法在有三个小时之内区分出哪瓶是毒药?
4个条件:
1.不论摄入多少量
2.都会在一个小时到两个小时 s掉。
3.7只小白鼠
4.无限长的准备时间
要求:
在三个小时之内区分出哪瓶是毒药?
解答
对于第一题很简单,不在多述。
对于第二题,我的解法如下:把100瓶分成7份,给7个小白鼠,每份不到15瓶。15x7=105>100
1小时后,死掉一只,剩6只。
再把死掉一只的那15瓶分成6份,每份不到3瓶。3x6=18>15
1小时后,再死一只,剩5只
再把3瓶分给5个小白鼠,5>3
再过1小时,就可以确认。
注意的是:
小白鼠是1到2小时之间才能毒发,必须等到有一只死了,才可以进行下一步操作。
还有一种解法如下:
由于27=128>100,所以1~100能用7位2进制表示。
比如:
1转成2进制是000 0001
2转成2进制是000 0010
100转成2进制是110 0100
那更多的十进制转换为二进制如下
1=0000001 | 21=0010101 | 41=0101001 | 61=0111101 | 81=1010001 |
2=0000010 | 22=0010110 | 42=0101010 | 62=0111110 | 82=1010010 |
3=0000011 | 23=0010111 | 43=0101011 | 63=0111111 | 83=1010011 |
4=0000100 | 24=0011000 | 44=0101100 | 64=10000oo | 84=1010100 |
5=0000101 | 25=0011001 | 45=0101101 | 65=1000001 | 85=1010101 |
6=0000110 | 26=0011010 | 46=0101110 | 66=1000010 | 86=1010110 |
7=0000111 | 27=0011011 | 47=0101111 | 67=1000011 | 87=1010111 |
8=0001000 | 28=0011100 | 48=0110000 | 68=1000100 | 88=1011000 |
9=0001001 | 29=0011101 | 49=0110001 | 69=1000101 | 89=1011001 |
10=0001010 | 30=0011110 | 50=0110010 | 70=1000110 | 90=1011010 |
11=0001011 | 31=0011111 | 51=0110011 | 71=1000111 | 91=1011011 |
12=0001100 | 32=0100000 | 52=0110100 | 72=1001000 | 92=1011100 |
13=0001101 | 33=0100001 | 53=0110101 | 73=1001001 | 93=1011101 |
14=0001110 | 34=0100010 | 54=0110110 | 74=1001010 | 94=1011110 |
15=0001111 | 35=0100011 | 55=0110111 | 75=1001011 | 95=1011111 |
16=0010000 | 36=100100 | 56=0111000 | 76=1001100 | 96=1100000 |
17=0010001 | 37=0100101 | 57=0111001 | 77=1001101 | 97=1100001 |
18=0010010 | 38=0100110 | 58=0111010 | 78=1001110 | 98=1100010 |
19=0010011 | 39=0100111 | 59=0111011 | 79=1001111 | 99=1100011 |
20=0010100 | 40=0101000 | 60=0111100 | 80=1010000 | 100=1100100 |
我们现在把第一位是1的所有液体进行混合,也就是编码是1xx xxxx的所有液体都混到一个瓶子里面。同理:把第二位是1的所有液体进行混合到一个瓶子里面,把第三四五六七位是1的,同样的方法进行混合到一个瓶子里面,最终我们可以得到7个瓶。7个瓶子里的液体分别喂给7个小白鼠,之后我们只需等待两小时所有中毒的小白鼠都会毒发。
根据中毒小白鼠的情况,可得出其毒药编码。第几位小白鼠死了,毒药的编码第几位就是1(死为1,活为0)
例如:只有第1、3、5、7小白鼠死掉,其编码为101 0101,也就是第85瓶是毒药。
若第一题也用此方法,我们将立刻根据死掉的小白鼠,就得知其毒药编码了。