找到解药(1.1g或0.9g)

某APP上认识的好友发过来的问题,题目具体出处不明

你被神秘人抓来被喂下了毒药。
现在房间里有十罐子的糖果,每罐子里的糖果数量为1000(或自己设定数量)。
其中一罐为解药糖果,每颗1.1克或0.9克,两者混合在同一个罐子里。其余9罐为毒药,毒药为1克。
(吃下毒药立马身亡,吃下解药存活。)
现在给你一把精确读数电子秤,三次机会找出解药的那罐。

对于这种类型问题我的初见反应就是每个罐子取不同的个数来确定差异,或者根据一些n进制编码,来去找到实际差异。

经过分析之后发现

  • 解药1.1或0.9,n*(1.1+0.9)=n*(1+1)
    这使得任意偶数个解药罐子中的取数无法确定的与毒药罐子的数量进行区分,因此对于取4个或者是取2个是对该问题没有任何影响的
  • 第1次最多分出来5个
    因为在前提没有任何信息的情况下,无论怎么分组都不可能,筛选出来多于5个的数量,其他的任意分组在最差的情况下,肯定都是多于5个

既然思路差不多有了,那么就开始。
对罐子先进行编码,好区分,分别是

编号
A
B
C
D
E
F
G
H
I
J

因为分析过,对于最多分出来5个,且当数量增加2个及2个的倍数时,对结果没有影响,因此我们尝试A~E各取1个F~J各取2个
我们对每次取出来的药丸都进行编码,例如从G取出来的两个,分别是G1和G2,没有顺序要求,只是为了记住这两个

编号取出数量
AA1
BB1
CC1
DD1
EE1
FF1,F2
GG1,G2
HH1,H2
II1,I2
JJ1,J2

此时进行分析,结果无外乎这几种

重量原因
15gA~E必定为1g,F~J存在解药,且取出来1.1和0.9
14.8gA~E必定为1g,F~J存在解药,且取出来0.9和0.9
15.2gA~E必定为1g,F~J存在解药,且取出来1.1和1.1
14.9A~E必定存在解药且必定为0.9g
15.1A~E必定存在解药且必定为1.1g

其余的最简单的为15.2和14.8,且两种情况完全相同,下面只讲述15.2的情况,14.8同理可得


第一次称重结果:15.2g

取F1,G1,H1进行称重
结果为2种

重量原因
3g解药在 I 或者J 中,再随意称重一次即可
3.1g解药在F,G,H中

当3.1g时,对F,G,H进行再次判断
取F1,G1,G2进行称重
结果为

重量原因
3g解药为H
3.1g解药为F
3.2g解药为G

14.8g与之同理,不过是把3.1换成了2.9,3.2换成了2.8而已


第一次称重结果:14.8g

为15.2g的相对情况


第一次称重结果:15g

取F1,G1,H1进行称重
结果为3种

重量原因
3g解药在 I 或者J 中,再随意称重一次即可
3.1g解药在F,G,H中,且F1,G1,H1中为存在1.1,F2,G2,H2中为存在0.9
2.9g解药在F,G,H中,为3.1g的相对情况

只进行分析3.1g的情况
取F1,G2进行称重
结果为3种

重量原因
2g解药为H
2.1g解药为F
1.9g解药为G

当第2次称重为2.9g时,解药F或G的对应重量互换,解药为H时无影响


第一次称重结果:14.9g

A~C中再各取1个,记为
A2,B2,C2
结果为有3种

重量原因
3g解药在 D 或者E 中,再随意称重一次即可
3.1g解药在A,B,C中
2.9g解药在A,B,C中,且

此时我们就能发现,现在的情况与上述的一些情况重合了
3.1g时,与15g的第2次称重情况一致了,即
A1,B1,C1中所含解药重量与
A2,B2,C2中所含解药重量不一致,对A1和B2进行称重即可

2.9g时与14.8g的第二次情况一致了,即
A1,B1,C1中所含解药重量与
A2,B2,C2中所含解药重量一致,对A1、B1、B2进行称重即可


第一次称重结果:15.1g

为14.9g的相对情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值