实验室里有1000个一模一样的瓶子,但是其中的一瓶有毒。可以用实验室的小白鼠来测试哪一瓶是毒药。如果小白鼠喝掉毒药的话,会在一个星期的时候死去,其他瓶子里的药水没有任何副作用。请问最少用多少只小白鼠可以在一个星期以内查出哪瓶是毒药;
答案是: 10只;
计算方法:
1,其实就是使用组合方式,来确定具体值;
2.使用的是二进制方式,选取数量是这样得到的: 2^9 < 1000 < 2^10
举例子:
例如有4瓶水(这里需要2只小白鼠):
小白鼠1,喝尾数为1的水
小白鼠2,喝尾数+1的水
水的序列号十进制 | 水的序列号二进制 | 小白鼠编号 |
1 | 001 | 1 |
2 | 010 | 2 |
3 | 011 | 1 2 |
4 | 100 | 没有 |
其实用肉眼一看就知道哪知死,对应哪个有毒,但是多的话就不好分辨了,这里也是用二进制;
1.如果1死了,那么就定位到尾数为1的,就是001水
2.如果2死了,那么就定位到尾数+1的水,010
3.如果1和2死了,就能定位011的水
4.如果都没死,那么就是100的水