最近一道题在百度贴吧非常火,就是500桶酒有一桶是毒酒,需要找囚犯来试酒,究竟要找多少名囚犯才能在酒会开始之前找到毒酒,网上答案有很多,小编这里为大家附上完整版的答案。
500桶酒毒酒题目介绍
题目一:500桶酒,其中1桶是毒酒;48小时后要举行酒会;毒酒喝下去会在之后的第23-24小时内毒死人;国王决定用囚犯来试酒,不介意囚犯死多少,只要求用最少的囚犯来测试出哪一桶是毒酒,问最少需要多少囚犯才能保证找出毒酒?
题目二:国王为10天后的生日宴会准备了1000桶酒,不幸的是,其中两桶被下了毒。为了确定两桶毒酒,有人提议用死刑犯试毒。毒的潜伏期为10天。问:至少需要多少个死刑犯才能确保找出毒酒?方案如何实行?
题目一答案参考
1、23人,每人喝22至23种酒,24小时,毒死一人,能确定毒酒在23种以内,剩下的22人,每人喝一种,再过24小时就能找出毒酒。
2、22人也行,一人喝22种,如果死人,确定22种,否则16种,剩下的21人,没人一种,24小时后死不死人都可确定是哪一桶。
3、最多9人,三维空间定酒,xyz三维各站3人,原点不站,来两轮,可判断。
4、21个人就够了,需要计时。每个人每1小时喝一个没尝过的酒,哪个人挂了,往前推算23.5小时就知道了。
5、我觉得比较直接的办法是20个人,将酒按编号分为20组,其中10组是1~10,11~20,21~30....,另外10组是1,11,21...;2,22,32,...;3,13,23,....;每个人喝一组酒,最多死4个人,根据死的人所喝的组数来交叉确定毒酒,不知道对每桶酒进行2进制编号是不是也行,因为2的9次方等于1024,也就是说,9个人就够了--麻烦的是,每个人要喝500桶酒的混合液....然后根据死的人喝的酒的代码进行交叉,找到毒酒。
6、应该五人足够,每人喝一种,然后两两组合喝一种,再三三组合喝一种,再四四组合喝一种,再五人同喝一种,可以试31种,然后过一个小时重复之前的喝法,五个人41个小时就能试出来。
7、最少2个囚犯。
酒从1-500编号,第一个囚犯喝0时刻喝标号1~20的酒,1时刻喝21~40的酒,……24时刻喝481~500的酒,第二个囚犯0时刻喝标号1、21、41、……481的25种酒,……19时刻喝标号20、40、……500的酒,根据两只老鼠死的时间就可以推出是哪一桶酒有毒。
题目二答案
1、用2进制编码吧,需要20个人。每桶酒2进制编码后排成10列,每列安排2个人喝酒:
0000000000
0000000001
0000000010
0000000011
0000000100
0000000101
0000000110
0000000111
.........
每列的2个人,对应酒桶编码,一个喝这位数是0的,一个喝这位数是1的酒
然后根据死的人来确定酒的该位置代码是零还是1
2、酒桶标号1-1000,转化成二进制0000000001-1111101000
10个囚徒对应10位,某桶酒数值为1的数位就给对应那囚徒喝那桶酒
最接近的答案
只需要2个人。将500桶酒编个号,1到500,然后让第一个人在接下来的25个小时里,每一个小时品尝20桶酒,按编号来第一个小时喝的是1,2…20,第二个小时喝的是21,22…40以此类推,最后第25小时喝481,482,…500。
第二个人只要在接下来的20个小时每小时喝25桶酒,但酒的编号不同,第一小时喝1,21,…481。第二小时喝2,22…482,以此类推,第20小时喝20,40…500。
然后看两个人死亡的时间,从而推出哪瓶毒酒。再通过排列组合确定具体哪瓶。
图解分析
答案是5人