小鼠试毒问题(二进制)

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

如题。

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

解法一:
二进制编码。

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

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

第十只 1000000000

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

故最后可从哪几只老鼠死亡来判断毒酒的编号是多少。

通用公式:
N桶酒,老鼠所能表示的状态数目为M,则需要的老鼠个数为: K = l o g M N K =log_M{N} K=logMN

而具体实验的操作方法为:
1.每种状态按照 M 进制进行编码,编码长度为 K
2.每个老鼠分别去拿自身的 M 中状态去实验 N 的 M 进制编码的某一位
3.所以 K 个老鼠,等同于是 K 长度 M 进制的对应的每一位
4.这样试验完后,就确定了每一位上面的数字,找到对应的那种状态就好。

解法二:
二分法。

具体喝法如下:
第一只:1-500
第二只:1-250,501-750
第三只:1-125,251-375,501-625,751-875

因为 2 10 2^{10} 210>1000 , 2 9 2^{9} 29<1000

所以最少需要10只老鼠。


触类旁通:

初级版问题——每只只能实验一次

即上题。因为每只老鼠只能实验一次,所以,每只老鼠身上有两种状态一死亡或者存活,而酒中有毒的信息总量为1000,即每桶酒都有可能有毒。

所以需要的编码长度为: l o g 2 1000 log_ 2 {1000} log21000 向上取整得到10

中级版问题一一每只可以实验多次

10000桶酒,其中1桶是毒酒;48小时后要举行酒会;毒酒喝下去会在之后的第23-24小时内毒死人(时间确定);国王决定用囚犯来试酒,不介意囚犯死多少,只要求用最少的囚犯来测试出哪一桶是毒酒,问最少需要多少囚犯才能保证找出毒酒?

根据题目要求,对于每个囚犯,是可以实验24次的,即第0小时喝,然后第1小时再喝,。。。如果第K小时死亡,则是因为第K-24(上取整)小数喝的酒导致的。

这样的话,每个人就含有了25个状态,即24小时分别每个小时死亡,外加最后没有死。

所以需要的囚犯数为 l o g 25 10000 log_{25}{10000} log2510000 = 3, 即将10000桶酒按照25进制编码进行编码,是一个三位数长度的25进制数。

然后三个人分别第i小时去喝对应位数上编码为i的所有酒,最后就能确定下来具体喝哪一桶酒。

类似的题:
1000桶水,其中一桶有毒,猪喝毒水后会在15分钟内死去,想用一个小时找到这桶毒水,至少需要几头猪?

解:每头猪有5种状态,所以5头猪即可完成编码。

高级问题—-不止一桶有毒

不止一桶有毒的情况下,其实非常地复杂。

1000桶水中两桶有毒,猪喝毒水后会在15分钟内死去,想用一个小时找到毒水,至少需要几只猪?如何实现?

因为有两桶有毒,所以信息量为: N = C 1000 2 N = C _ {1000}^{2} N=C10002种情况。
每只猪身上有5种状态,所以最低有: l o g 5 N = 9 log_{5}{N}= 9 log5N=9
但是这个只是理论下界,因为猪死亡是不能够区分出,是被一桶毒水毒死的,还是两桶毒水。

假设猪死亡的状态可以区分出来/或者两种毒水需要混合才能有毒性的话,那么做法是,将这1000桶毒水两两混合,一共 N = C 1000 2 N = C _ {1000}^{2} N=C10002 种组合,然后将这些组合按照5进制进行编码。然后9只猪就可以区分出来了。

而对于这道题来说,不止一桶水有毒的情况,就是先用交叉法再用进制法。
即10只猪每只喝100桶,然后按照死一只还是死两只进行分开讨论。

具体如下:
1.给每只猪喂对应个位数编号的水,这样第一个15分钟后肯定最多死两只猪。

2.1.如果死了两只猪的话,则同时确定了两个[100桶水里有一桶水有毒]。问题简化成两个[100桶水里有一桶水有毒],45min确定哪两桶。
将剩下八只猪平均分开,思考可以用几进制的四位数至少可以表示到100,分别确定这桶水。因为 4 4 4^{4} 44>100,刚好每只猪剩4种状态,所以两步一共需要10只猪。

2.2 如果仅死一只猪的话,问题变成100桶水里两桶有毒,45min确定哪两桶。
利用1思路,给剩下的猪每只喂12桶水。

2.2.1若死两只猪(此时还剩下7只猪),则问题简化成两个[12桶水一桶有毒],30min确定。
因为 3 3 3^{3} 33>12,所以刚好将剩下的猪分成33两组。

2.2.2若死一只猪(此时还有八只猪),问题变成12桶水里两桶有毒,30min确定哪两桶。
利用1思路,给剩下的猪每只喂2桶水。

2.2.2.1若死两只猪(此时还有六只猪),问题变成两个[2桶水里一桶有毒],15min确定哪两桶。

2.2.2.2若死一只猪(此时还有七只猪),问题变成2桶水里两桶有毒,15min确定哪两桶。

故而此方法10只是最多的。


可利用 二进制编码 解法的又一种题目:

500张多米诺骨牌整齐地排成一列,依顺序编号为1、2、3…499、500。第一次拿走所有奇数位置上的骨牌,第二次再从剩余骨牌中拿走所有奇数位置上的骨牌,依此类推。请问最后剩下的一张骨牌的编号是多少?

如题。

所有骨牌都可以用一个9位的二进制编码来标记。

题目中,第1次取牌抽走了所有末位是1的牌,剩余末位为0的牌;第2次抽牌则在第一次剩余的牌中抽走倒数第二位为1的牌…

以此类推,第k次抽牌留下的是形如XXX…X000…0(k个0)的牌。

因此,最后一次抽牌留下的是二进制编码为100000000,即十进制256的牌。

  • 23
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值