小白鼠试毒药问题

问题:100瓶液体中,99瓶是水,一瓶是无色无味的毒药,现在你有一些小白鼠,让小白鼠喝一点液体,如果第二天小白鼠死了说明是毒药,反之无毒。你有两天时间,问至少需要多少只小白鼠才能找到那一瓶毒药。

解析:

思考:看到这个问题,我有一个疑问,就是这个“两天时间”,我在考虑到底这个时间到底能做几次实验,第一天做第一次实验,第二天才可以有结果,那第二次实验岂不是第三天才能得到结果??有人说一个老鼠就可以,如果老鼠24小时死,那隔半小时喂一瓶,等着看什么时候死不就行了。哈哈,这就是钻牛角尖。所以我们不去纠结这个天数,只看能做几次实验??

 

一、如果这两天只能做一次实验:

首先答案是7只老鼠就可以,下面我们再来具体说明为什么?

首先7只老鼠A、B、C、D、E、F、G

然后把100个瓶子也用数字表示出来,不过用到二进制数字。

七位二进制表示:

1:   0000001

2:   0000010

......

100:  1100100

然后ABCDEFG分别对应着个七位二进制的列,

老鼠ABCDEFG
第1瓶0000001
第2瓶0000010
第3瓶0000011
第4瓶0000100
 .....................
第100瓶1100100

每只老鼠只负责自己对应这一列的数字,如果是1就喝,0就不喝。。

也就是遇到某一瓶是毒药,那么死的老鼠数量不唯一(有点残忍)。

第二天,老鼠死了就代表对应的这一列的数字是1,没死那就是0,通过7只老鼠的性命就推断出这个唯一的7位二进制数字。

例如1:CDE三只老鼠死了,其他老鼠都活着。

ABCDEFG
0011100

他们组成的数字就是0011100,那就是第28瓶是毒药。

例如2:BDEG四只老鼠死了

ABCDEFG
0101101

 

组成的数字为0101101,那就是第45瓶是毒药。

 

所以,7只老鼠通过一次实验就可以验证出那瓶是毒药。

 

二、如果这两天只能做两次实验:

和上面一次实验的原理一样,但是5只老鼠就可以,

5只老鼠为ABCDE,

然后100瓶子用5位三进制表示:

第1瓶00001
第2瓶00002
第3瓶00010
第4瓶00011
第5瓶00012
 ...............
第100瓶10201

还是5只老鼠对应5列

 

老鼠ABCDE
第1瓶00001
第2瓶00002
第3瓶00010
第4瓶00011
第5瓶00012
 ...............
第100瓶10201

但是现在喝的方法和之前不一样,遇到1就第一次实验喝,0就不喝,2就第二次实验喝。然后静等结果就可以

后面确认具体数值方法喝之前一样,第一次喝了就死了那对应的数字就是1,一直没死那就是0,第二次喝了死了那就是2.

(有人可能对2就是第二次喝有个疑问,因为后面几列有1有2,如果死一次喝了死了还怎喝第二次,其实这个如果在第一次就死了就直接确认这个位置的数字是1了,就不用管第二次了。)、

例如1:老鼠B在第一天死了,CE两只在第二天死了。

老鼠ABCDE
生死第一死第二死第二死
第2瓶01202

 

得到的数字就是01202,换算一下就是47,那就是第47瓶有毒。

多余例子就不举了,原理都是一样,可以试试。

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值