兔子试毒药问题分析
程序员文章站
2024-03-25 23:16:46
...
1000瓶一样的液体,其中一瓶有毒,毒发期为一个星期,现在有一个星期的时间,怎么通过用最少的兔子来找出哪一瓶有毒?
1、一般方法
- 用1000只兔子,每只兔子和液体编号,分别给每只兔子和对应的液体
这种方法简单粗暴,但是显然不符合题设要求
2、使用二进制
- 将1000瓶液体编号使用二进制表示,例如:2用二进制表示就是10,3就是11,1000就是11,1110,1000
- 然后取10只兔子,第一瓶喂给1号兔子和,第二瓶给2号兔子和,第三瓶给1,2号兔子喝,以此类推,第1000瓶给第4,6,7,8,9,10号兔子喝。这样就使用10只兔子唯一的标识了1000瓶液体。
- 等到毒发,如果只有1号兔子死了,那么就是第一瓶,如果1, 2 号都死了就是滴三瓶。。。。。。