1000瓶药有1瓶有毒,需要多少只小白鼠才能试验找出

问:1000瓶药有1瓶有毒,如果小白鼠服用有毒的药,则24小时后死亡。现在需设计一种策略,使用尽可能少的小白鼠,在24小时内找出有毒的药。


思路:

可以先考虑简单的情况: 喝了毒药之后马上死亡,要求用最少的喝药次数找到毒药:

第一次: 将1-500瓶兑在一起喝。

如果老鼠死了,则拿另一只老鼠去品尝501-725瓶兑的药水。否则去喝2-250瓶兑的水。

采用如此二分法,因为2^10>1000  2^9<1000,所以10次就可以找出。


现在回到原题,老鼠会在24小时后死亡,这样的化就不能跟去前一次的结果作出决策。但是可以覆盖二分的所有支路,在24小时后,一次性作出判断。

相当于将串行的二分法,改为并行的二分法。

具体如下:

第一只: 喝 1-500

第二只 1-250   500-725

第三只  1-125  250-375   500-625  725-850

....

因为2^10>1000 2^9<1000

所以最少需要10只老鼠。


伟大的二分法!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值