小鼠试毒问题(二进制)

1000桶酒,其中1桶有毒。而一旦吃了,毒性会在1周后发作。问最少需要多少只老鼠可在一周内找出毒酒?

如题。

分析思路:
要用尽可能少的老鼠完成相对大的任务量,要想到把问题进行对数分解。
从而不难想到 210=1024 2^{10}=10242
10
=1024 这个数量关系。

解法一:
二进制编码。

首先对1000桶酒按照1~1000进行二进制编码,因为 210 2^{10}2
10
= 1024 > 1000,因此需要10位二进制。
故只需要取10只老鼠,每只老鼠只喝其对应位数为1的编号的酒。

然后给10只老鼠按以下编码:
第一只 0000000001
第二只 0000000010
第三只 0000000100

第十只 1000000000

结果举例:编号为1000100011的酒是毒酒。
则对应喝酒的只有第一只,第二只,第六只,第十只死亡。

故最后可从哪几只老鼠死亡来判断毒酒的编号是多少。
————————————————
版权声明:本文为CSDN博主「ChanYipFan」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43530726/article/details/87920137

原文地址:https://www.cnblogs.com/sunlong88/p/11770058.html