用最少老鼠数找出7瓶药中的1瓶毒药

Posted fswhq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用最少老鼠数找出7瓶药中的1瓶毒药相关的知识,希望对你有一定的参考价值。

原文链接:https://www.jianshu.com/p/607d6683748b

https://blog.csdn.net/limitless1113/article/details/46681851

题目如下:现有7瓶药,其中有一瓶毒药,喝了之后1小时后才产生效果,现在你有1个小时的时间,请问找出那瓶毒药最少需要多少只老鼠?

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

001 代表第一瓶药

010代表第二瓶药

011代表第三瓶药

100、101、110、111一次类推

将所有编号第1位是1的分在第1组,编号第2位是1的分在第2组,编号第3位是1的分在第3组。

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

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

用10只老鼠可以找出1024瓶水中的1瓶毒药

以上是关于用最少老鼠数找出7瓶药中的1瓶毒药的主要内容,如果未能解决你的问题,请参考以下文章

学会这个算法,告别地毯式搜索,开启你的大神成长之路

老鼠毒药问题和它的扩展

老鼠和毒药(面试题)

问题:有1000杯水,其中有一杯是毒水,现在需要从中找出含毒药的水,可以用老鼠来实验;老鼠如果喝了有毒的水,一个小时内必死,请问如何安排试验,能够用最少的实验材料在一个小时内检测出有毒的水?

不要总想着二进制

CDOJ 1262 Memory