找回密码
 欢迎注册
查看: 270912|回复: 284

[讨论] 毒酒问题(加强版)

  [复制链接]
发表于 2009-6-5 14:11:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
http://tieba.baidu.com/f?kz=587967375

国王为10天后的生日宴会准备了1000桶酒,不幸的是,其中两桶被下了毒。为了确定两桶毒酒,有人提议用死刑犯试毒。毒的潜伏期为10天。
精华

问:至少需要多少个死刑犯才能确保找出毒酒?方案如何实行?


(最新结果在 https://bbs.emath.ac.cn/thread-1511-18-1.html, 计算机搜索现在已知最优结果为27个死刑犯 )

本题对应OEIS的链接为 A054961
并且提供了A054961不等价解的数目在A304041
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-6-5 17:11:56 | 显示全部楼层
6桶酒4人不够
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-6-5 17:47:46 | 显示全部楼层
对于比较大的数目,突破一人一桶是很简单的.败毒上已经有人给出一种模型比如有$n^2$桶,那么
我们可以将它们排成$n**n$方阵,然后选n个人喝掉每一行,再另外选n个人喝掉每一列.
那么这时通常的结果是有两个选择行喝两个选择列的囚徒倒下,对应4个桶(分布在一个矩形的4个顶点,实际上应该选择一条对角线上的两个顶点).
为了能够区分这些这些顶点,我们最差情况在选择$2*n-1$个囚徒,让它们按斜线分配酒就可以了.这种方案只需要$4n-1$个囚犯可以区分$n^2$个酒桶.
而我们还可以将这个方案试着向高维推广
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-6-6 11:23:00 | 显示全部楼层
8#的结果是不行的.结果会不可判断.
倒是如果三条直线交于一点就可以唯一判断结果了.
由此,如果我们将问题化为对偶问题,就是每条直线上三个点,1000条直线,那么至少需要多少个点呢?
那么这个正好是种树问题每行三颗树1000行的结果.
根据http://mathworld.wolfram.com/Orchard-PlantingProblem.html
我们取$[1/6(k-1)(k-2)]>=1000$的k就可以了.得出79个死囚是可以的.
不过这里,平面约束是没有必要的,所以我们可以将问题改成Packing $K_3$ into $K_n$的问题,结果要稍微好一些.
不过这些结果都同7#的结果很类似,对于n桶酒,大概需要$sqrt(6n)$个死囚.这个看来基本是二维模型的极限了.
不知道如果采用三维模型能够提高到什么程度
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-6-6 21:13:23 | 显示全部楼层
11#里可以利用Packing $K_3$ to $K_n$的结论构造一些解.这个相当于页面
http://www.research.att.com/~njas/codes/Andw/index.html#dist4
中的A(n,4,3)
而同样,如果我们考虑A(n,6,5),A(n,8,7),A(n,10,9),等等,都可以转化为这个问题的解(相当于利用更高阶图的结果)
其中A(n,d,w)表示那些长度为n比特的二进制数的集合的最大元素数目,其中集合中任何两个元素不同比特位数目不小于d,而每个二进制数正好有w比特为1.
那么对于A(n,w+1,w)中的方案(w为奇数),任何两个比特1数目为w的二进制数,不同的位置至少有w+1;也就是相同的比特1最多(w-1)/2个. 对应到本题,让A(n,w+1,w)桶酒让n个囚徒喝,其中n个比特位分别对应n个囚徒.每个二进制数对应一桶酒.每个二进制数上比特1对应的囚徒要喝掉对应的酒.
那么如果某桶酒有毒,那么那个对应的二进制数所有比特1对应的囚徒必然死去.反之如果某桶酒无毒,那么由于只有两桶毒酒,所以这个对应的二进制数最多有2*(w-1)/2=w-1个囚徒死去.
也就是我们可以根据每桶酒对应的二进制数所有比特1对应的囚徒是否全部死去来判断酒是否有毒.
表格中A(n,4,3)仅列到n=64,而对应值为661,也就是说64个囚徒才可以识别661桶酒.
而如果我们查看A(n,6,5),那么可以发现n=48是,A(48,6,5)=1030,也就是说,这个方案中48个囚徒就可以识别1030桶酒.
而表格A(n,8,7)中,n=41时,结果为1095,也就是说41个囚徒就可以了.
而在查看A(n,10,9)中,仅列到n=43,但是结果才841说明再增加w需要囚徒数目又要增加了.
所以我们通过这个方法,可以得出一种41个囚徒解决1000个酒桶的方案.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-6-6 21:18:02 | 显示全部楼层
看来是错了,但是24一共能表达16种状态,而C(6,2)=15所以肯定4个人是够了的。
是不是将15种组合方式按照二进制分配一下就可以了。没时间考虑了,这几天还去要去工地。
到处瞎逛 发表于 2009-6-6 12:11

虽然能够表达16种状态,但是不一定就能充分利用.
我用计算机穷举过,6个酒桶时4个人是不够的.
同样可以验证,7个酒桶时5个人也不够(不过这个计算量已经非常大了,我的计算机好像花费了1天多时间)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-6-7 05:15:22 | 显示全部楼层
设n桶中有两桶毒酒需要f(n)人判定,n桶中有1桶毒酒需要g(n)人判定

一个人喝x桶,则可能分为3种情况:
1 此人死,在其喝的x中有2,共C(x,2)种
2 此人死,在其喝的x中有1,共x(n-x)
3 此人不死,在其未喝的n-x中有 ...
shshsh_0510 发表于 2009-6-6 23:58

问题在于要求同时喝酒,而不能第一次判断有了结果以后再做第二次判断.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-6-7 05:44:32 | 显示全部楼层
看来是错了,但是24一共能表达16种状态,而C(6,2)=15所以肯定4个人是够了的。
是不是将15种组合方式按照二进制分配一下就可以了。没时间考虑了,这几天还去要去工地。
到处瞎逛 发表于 2009-6-6 12:11

直接证明4个人不能达到6桶酒的目标也不难.
对于4个人,所有子集有16种.
但是如果6桶酒的某一个组合(i,j)被映射到空集,那么就说明如果i,j都是毒酒,所有的人都不会死,也就是说所有的人都没有喝i,j这两桶酒.于是,如果毒酒是(i,k),那么只有喝了桶k里的酒的人会死去,我们无法区分(i,k)和(j,k).所以必然没有组合被映射到空集.
而对于6桶酒中的某两个组合(i,j)和(s,t),如果分别被映射到单元素集{u},{v}.
也就是如果i,j两桶有毒,只有第u个人死去;如果s,t两桶酒有毒,只有第v个人死去
而i,j,s,t中,最多两个数相同,也就是至少包含了3桶酒.
如果i,j,s,t四个数都不相同,很容易得出矛盾.
于是我们得出i,j,s,t中有一个数相同,表明这桶酒没有人喝过,不凡设j=t,也就是第j桶酒没有人喝.u喝了i,v喝了s.
同样,对于余下两个人构成的单元数集{w},{x},我们还可以找到三个数(三桶酒)i',j',s',其中w喝了i',x喝了s',j'没有人喝.于是j=j'.
于是我们得出5桶酒已经有了分配情况.j每人喝,i只有u喝了,s只有v喝了,i'只有w喝了,s'只有x喝了.
容易看出余下那桶酒无论如何分配,总会出现不可以识别的情况
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-6-7 17:22:01 | 显示全部楼层
还是感觉不对.不知道你怎么能够构造出来的.
而且你上面的数据也挺难验证的,最好你自己可以检验一下.
如果成立,也就是说任意不同两列的并得到的值全部必须不同.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-6-7 18:01:02 | 显示全部楼层
将我15#方法的结果整理一下.那些对应的A(...)下界表格如下:
A(n,4,3)A(n,6,5)A(n,8,7)A(n,10,9)A(n,12,11)A(n,14,13)A(n,16,15)
64.a
77.SS
88.c21
912.s31
1013.s6.s1
1117.s11.c2
1220.s12.c31
1326.c18.s41
1428.s28.s8.s21
1535.s42.s15.c31
1637.s48.s16.c411
1744.s68.SS24.ec621
1848.s69AC33s10.s311
1957.c76c52s19.c311
2060.s84c80.s20c521
2170.s108Nu120.s27pc731
2273.s132m176.s35pc12.s31
2383.s147t2253.s45pc23.c42
2488.s168s25356c24c63z13
25100.c210.s254x272ec36ec8?
26104.c260.s257y91Nu39q214.s4z13
27117.s260278y118Nu54c27.s5z13
28121.z3280Nu296y132pc65Nu28c7z13
29134.z3234s300xr96s47s19z138Gj
30140.z3272Gj327xr65z1358s22z1315z13
31155.z3311xG362xr77z1372s30z1315Gj
32160.z3337xG403xr167s87s33z1319z13
33176.z3302s442xr198s106s??
34181.z3334s494xr232s129s??
35197.z3367s555xr273s155s??
36204.z3402s622xr320s???
37222.z3441s696xr372s???
38228.z3480s785xr430s???
39247.z3523s869xr493s???
40253.z3569s965xr570s???
41272.z3616s1095xr651s???
42280.z3666s1206xr742s???
43301.z3720s1344xr841s???
44308.z3777s1471xr????
45330.z3836s1632xr????
46337.z3898s1795xr????
47359.z3962s1976xr????
48368.z31030s?????
49392.z31100s?????
50400.z31173s?????
51425.z31250s?????
52433.z31332s?????
53458.z31414s?????
54468.z31501s?????
55495.z31591s?????
56504.z31686s?????
57532.z31782s?????
58541.z31884s?????
59569.z31992s?????
60580.z32100s?????
61610.z32215s?????
62620.z32333s?????
63651.z33906s7182s???7707s
64661.z3?8064s????
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-19 06:18 , Processed in 0.053010 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表