【逻辑】500桶酒,其中1桶是毒酒,找毒酒

题目

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

思路一

需要9个人
将500桶毒酒进行编号,并用二进制表示.得到000000000~111110100.
每个囚犯对应二进制的每一位,然后喝下对应位数为1的那个编号的毒酒
然后根据死亡的囚犯编号或者毒酒的二进制编码.
进而获得毒酒的编号.
如毒酒编号为350,那么二进制对应为101011110.难么囚犯234579会死亡.

思路二

需要两个人,因为23*23=529>500
将毒酒进行编号,并且每23桶作为一组,1~23;24~46…..
囚犯一每小时喝下每一组酒
囚犯二每小时喝下每一组中对应的酒,如第一小时喝下每组的第一桶酒.第二小时喝下每一组对应的第二桶酒.
然后根据死亡时间进行交叉查找

根据2人死亡计时和行、列交叉点即可找到那桶毒酒了。
如囚犯一34小时死亡,代表(34-23)组酒有毒,即231~253有毒.
囚犯二38小时死亡,代表每组的(38-23)号=15号有问题.
综合后即为231+15-1=245号酒有问题.

简单地说把500桶分成23行22列:
第一个囚犯每小时喝一行;
第二个囚犯每小时喝一列。
根据2人死亡计时和行、列交叉点即可找到那桶毒酒了。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
.版本 2 .如果真 (ItemID = 3020193) item.Name = “[魂玉]过关斩将” item.Color = Color_4 返回 (item) .如果真结束 .如果真 (ItemID = 3020185) item.Name = “[魂玉]七星夺窍” item.Color = Color_4 返回 (item) .如果真结束 .如果真 (ItemID = 3020188) item.Name = “[魂玉]五情七灭阵” item.Color = Color_4 返回 (item) .如果真结束 .如果真 (ItemID = 3020187) item.Name = “[魂玉]捅劲” item.Color = Color_3 返回 (item) .如果真结束 .如果真 (ItemID = 3020183) item.Name = “[魂玉]乾坤日月斩” item.Color = Color_4 返回 (item) .如果真结束 .如果真 (ItemID = 3020179) item.Name = “[魂玉]分水斩” item.Color = Color_3 返回 (item) .如果真结束 .如果真 (ItemID = 3020181) item.Name = “[魂玉]铁马残红” item.Color = Color_3 返回 (item) .如果真结束 .如果真 (ItemID = 3020180) item.Name = “[魂玉]夺魂·双刀” item.Color = Color_3 返回 (item) .如果真结束 .如果真 (ItemID = 3020173) item.Name = “[魂玉]强袭·离火式” item.Color = Color_4 返回 (item) .如果真结束 .如果真 (ItemID = 3020182) item.Name = “[魂玉]易武·万华” item.Color = Color_4 返回 (item) .如果真结束 .如果真 (ItemID = 3020174) item.Name = “[魂玉]五毒酒” item.Color = Color_3 返回 (item) .如果真结束 .如果真 (ItemID = 3020163) item.Name = “[魂玉]流星飞坠” item.Color = Color_3 返回 (item) .如果真结束 .如果真 (ItemID = 3005005) item.Name = “[装备]红甲” item.Color = #红色 返回 (item) .如果真结束 .如果真 (ItemID = 3010053) item.Name = “[道具]锻造锤” item.Color = Color_4 返回 (item)翻译成c++ if源码
05-24

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值