有1000瓶超级名贵的葡萄酒,其中有1瓶有毒。这种毒药很厉害,哪怕被稀释了1000000倍还是可以毒死人的。但这个毒药一定时间后才会毒发,时长是1个月。为了不浪费这些葡萄酒,有100个壮士决定花5周的时间将毒酒找出,他们只希望最多有10个人牺牲,你需要如何安排才能实现。 -- TopLanguage
1000瓶酒,人均10瓶那么可以这样把酒分组。
第一次:1-10,11-20,21-30...991-1000
第二次:2-11,12-21,22-31...992-1(就是1001循环到1)
第三次:3-12,13-22,23-32...993-2(就是1002循环到2)
...
第九次:9-18,19-28,29-38...999-8
第十次:10-19,20-29,30-39...1000-9
这样每次分组都有100组,对应每个壮士。十次分组,那么每瓶酒都有十个人喝,所以我们观察哪十个壮士毒发,那么就可以他们共同喝了那一瓶酒就是毒酒。
但是这里没有用到时间。题目中35天时间没有用上
同样也是分组,同样也是每人认领10瓶,但不一样的是不是一天喝完。
第一天:1-2,11-12,21-22... 意思第一个人喝1-2,第二个人喝11-12,以此类推
第二天:3-4,13-14,23-24...
第三天:5-6,15-16,25-26...
第四天:7-8,17-18,27-28...
第五天:9-10,19-20,29-30...
第六天:每个人都喝下一个人的偶数(或者奇数)瓶
那么根据壮士毒发的时间就能知道毒酒到底在哪个区间,然后根据最后一天毒发的人确定到底是偶数有毒还是奇数有毒。
争议就是第六天的假设是否合理?
假如毒发时间刚好在第30天早上0点,那么第六天喝的酒毒发就在36天0点也就是35天24点。这样刚好擦边认为是在5周解决了
假如毒发时间刚好在第30天晚上24点,那么第六天喝的酒毒发就在36天24点也就是37天才知道结果。那么就不符合
原文:https://www.cnblogs.com/sinpo828/p/14492633.html