java国王毒酒答案,囚犯与毒酒问题

初步计算21。由于毒发时间是固定的一个小时之内,所以第一天的每一个小时都可以用来试毒酒。

详细计算过程先不写了,直接从结论说

把10000桶酒分成22组,每组最多455桶。开始(0点)每人试喝其中一组,确保第二天0点前能确定毒酒在哪一组(455桶)范围内。

接下来,1点,21个人每人都从每组的455桶中试一桶(不重复),即每人试喝22桶。这样21个人这一小时共试了455桶中的21桶;

2点,同理;如此,1点到22点,21个人共试22次,可以将每组内的455桶都试一遍(21*22=462>455);

23点,每人依然试每组中的一桶,共22桶,注意,此次试的是另一个人试过的,可以循环(1号喝2号试过的,2号和3号的…………23号喝一号的)。

第二天0点,两种情况:(1)没有人毒死。这个简单,确定毒酒在没人在0点试喝那组,等待结果就好,第二天23点前总有一个人被毒死;根据时间和人判断是哪一桶;(2)其中一个人被毒死了。那么毒酒在他在0点喝的455桶范围内,和前一种情况不同,由于一个人死了,那么他在本组内1点到22点喝的22桶不能被验证,但由于在23点的试喝使得待验证的少了一桶,只剩21桶,于是剩下的20个人在这21桶中每人试喝一桶;

针对第二种情况,第二天0点到22点之间,有人被毒死,和第一种情况一样,确认毒酒。没人毒死,确定在22桶中,23点前,如果没人被毒死,则毒酒在21桶中,这样,酒会之前,根据20个人哪个被毒死,或者没人毒死,确认毒酒在哪一桶中。

此题比较复杂,我只简单的解答一下,更复杂的方法可能有更优解,比如交叉重复试喝什么的(死人更多的方法),抛转引玉,欢迎大家讨论。

.版本 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、付费专栏及课程。

余额充值