1000瓶毒药,小白鼠测毒问题

转自:https://blog.csdn.net/shaolianbo/article/details/8650061

问: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只老鼠。

猜你喜欢

转载自blog.csdn.net/zSY_snake/article/details/82717833
今日推荐