1000瓶药中找出一瓶毒药,10只老鼠做试验

题目如下:现有1000瓶药,其中有一瓶毒药,喝了之后1小时后才产生效果,现在你有10只老鼠和1个小时的时间,请问怎么找出毒药?

题解:这道题明显就是只能一开始就把所有药都喂给10只老鼠,1小时后就直接一次性出结果。

现在以2只老鼠做例子,每只老鼠喝一瓶药,2只老鼠能验出2瓶,最多只能从3瓶中找出一瓶毒药;

这显然不够的,但是如果是用第一只老鼠喝第一瓶药,第二只老鼠喝第二瓶药,第1和第2只老鼠喝第三瓶药,那么就能够从3瓶中找出毒药;

这时我们可以发现,唯一的组合的死亡也能代表一瓶药有毒。

现在有10只老鼠,那么我们以老鼠的死和排序作为一瓶药的编号。例如:

001 代表第一瓶药

010代表第二瓶药

011代表第三瓶药

100、101、110、111一次类推

因此,第一只老鼠(从右往左数)要喝的有1、3、5、7 四瓶药,第二只老鼠要喝的有2、3、6 三瓶药,第三只老鼠喝的是4、5、6、7 四瓶药。

第一只老鼠死了代表第一瓶是毒药,第二只死了代表第二瓶是毒药,第一和第二都死了代表第3瓶是毒药,第三只死了代表第4瓶是毒药,第一和第三死了代表第5瓶是毒药、、、以此类推

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值