首页 > 其他 > 详细

小鼠试毒问题(二进制)

时间:2019-10-31 11:11:15      阅读:131      评论:0      收藏:0      [点我收藏+]

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!