找回密码
 欢迎注册
楼主: mathe

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

  [复制链接]
发表于 2018-3-31 08:09:31 | 显示全部楼层
mathe 发表于 2018-3-29 16:06
10人22瓶酒情况我的程序总是搜索出包含两个只包含一个元素的集合,而找不到66楼中给出的解,说明程序还是有 ...

66#的6-10和11-12貌似构造方法不同。所以好像很难直接从11删解出10-【22】来,最多只能删解出10-【21】

点评

1,好(结论不重复)的方案j经删解(任意)仍是好的方案。2,随着数字增大,最好的方案肯定不是靠删解出来的!  发表于 2018-3-31 10:16
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2018-3-30 19:16:06 | 显示全部楼层
小铃铛 发表于 2018-3-30 15:02
请问,现在哪里可以找到A(n,d,w)的详细数据,求链接

你可以参考一下https://oeis.org/wiki/Index_to_OEIS:_Section_Aa#Andw
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2018-3-30 15:02:56 | 显示全部楼层
请问,现在哪里可以找到A(n,d,w)的详细数据,求链接
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2018-3-30 09:55:26 | 显示全部楼层
mathe 发表于 2018-3-29 16:06
10人22瓶酒情况我的程序总是搜索出包含两个只包含一个元素的集合,而找不到66楼中给出的解,说明程序还是有 ...

算到这个份上,停了真是有点可惜。
要不再来几个3(4,5)瓶毒酒的数据,也许答案会更精细些。
3瓶毒酒=每次取3瓶酒按二进制的 Or 运算求和:
0+0+0=0,
0+0+1=0+1+0=0+1+1=1+0+0=1+0+1=1+1+0=1+1+1=1
具体操作:
第1次取第3行+第2行+第1行的和。
第2次取第4行+第2行+第1行的和。
第3次取第4行+第3行+第1行的和。
第4次取第4行+第3行+第2行的和。
第5次取第5行+第2行+第1行的和。
第6次取第5行+第3行+第1行的和。
第7次取第5行+第3行+第2行的和。
第8次取第5行+第4行+第1行的和。
第9次取第5行+第4行+第2行的和。
第10次取第5行+第4行+第3行的和。
第11次取第6行+第2行+第1行的和。
.......
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2018-3-29 16:06:35 来自手机 | 显示全部楼层
10人22瓶酒情况我的程序总是搜索出包含两个只包含一个元素的集合,而找不到66楼中给出的解,说明程序还是有缺陷的。KeyTo9_Fans可以试一试10人情况,把各种10人最优解都输出看看
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2018-3-29 12:48:59 | 显示全部楼层
本帖最后由 小铃铛 于 2018-3-29 12:59 编辑
王守恩 发表于 2018-3-29 12:24
烦请小铃铛验算:
000000000001
000001001011


你这段数字和66#的不同!

可以很确定地说:
按照这个方法提取出来的肯定是符合要求的解.
但是,会出现删去过多行的问题,从而导致行数不足,不足31行。尽管可用,但不是最优解。
66#的“”oeis-A05496112“的12-【46】就存在着这个问题。不过可以有补救手段。

另:你选中你的那段数字,你会发现每行数字末尾都有一个不可见字符,我早前问你的问题就是想知道这个不可见字符是怎么产生的,你是通过什么编辑这些二进制数字的?

点评

没骗你!是134#!列与列交换位置,答案不变!行与行交换位置,答案不变!  发表于 2018-3-29 16:12
呵呵,也不是134#  发表于 2018-3-29 15:18
你这段数字和66#的不同!经仔细复核:是134#。语法有问题,”好“应该是结果不重复。  发表于 2018-3-29 14:58
不确定你说的”好“代表什么,如果说是最优解,不一定。如果说指相或结果不重复,看上去是的。  发表于 2018-3-29 14:36
1,也就是说:只要是好的答案去掉任意1列仍是好的答案。2,我是1个1,或1个0,1个1个1个敲出来的。  发表于 2018-3-29 13:05
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2018-3-29 12:24:45 | 显示全部楼层
本帖最后由 王守恩 于 2018-3-29 16:14 编辑
王守恩 发表于 2018-3-18 18:36
确认一下。
一,66#的方法应该是最好的。
二,124#的解法也是没有问题!


烦请小铃铛验算:
000000000001
000001001011
000001110001
000010000111
000010011001
000011010100
000011100010
000100010101
000100101001
000100110010
000101001100
000110001010
000110100100
001000001101
001000100011
001000111000
001001100100
001010010010
001011001000
001100000110
001101010000
010000010011
010000100110
010001000101
010001101000
010010001100
010010110000
010100011000
010101000010
011000001010
011000010100
100000100101
100010101000
100011000001
100100000011
100101100000
100110010000
101000010001
101001000010
101010000100
101100001000
110000001001
110001010000
110010000010
110100000100
111000100000
1,12人对应12列,从右到左依次称为第1列,第2列......第12列。
46瓶对应46行,从上到下依次称为第1行,第2行......第46行。
2,去掉第1列:去掉第1列”1“对应的行,剩下11列×30行。
剩下的11列×30行仍是11人30瓶的正确答案?
3,去掉第(2-12)中的1列:去掉第(2-12)中的1列”1“对应的行,剩下11列×31行。
剩下的11列×31行仍是11人31瓶的正确答案?
这里的12列×46行与134#本质是一样的,
当然可以直接拿134#来去掉1列,结论应该是一样的。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2018-3-28 09:59:51 | 显示全部楼层
小铃铛 发表于 2018-3-28 06:50
C(4,2)      =6           -->03位(B)--> 3-[4]
C(8,2)      =28         -->05位(B)--> 6-[8]
C(16,2)   ...

对不起!问一个与主帖好像无关的问题。
A + B = C,A,B,C都是二进制中的正整数, A > B,
“+” 表示 “or” 运算, “or” 运算规则:0 + 0 = 0, 0 + 1 = 1 + 0 = 1 + 1 = 1。
问:当 C 是由 8 个 1 组成的数时,A + B = C 可以有几个不同的算式?

点评

太好了!我怎么就没敢去想:0位是死位,无法变化,所以可忽略!!!  发表于 2018-3-28 19:31
0位是死位,无法变化,所以可忽略,有意思  发表于 2018-3-28 16:52
妙就妙在答案只与 “1” 的个数有关,与 “0” 的个数无关。”or“ 真是个好东西!是这样吗?  发表于 2018-3-28 16:37
真实见多识广啊,a(n) = (3^n - 1)/2,3280,对吧  发表于 2018-3-28 16:28
谢谢!答案只与 “1” 的个数有关,与 “0” 的个数无关。是这样吗?  发表于 2018-3-28 16:21
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2018-3-28 06:50:18 | 显示全部楼层
C(4,2)      =6           -->03位(B)--> 3-[4]
C(8,2)      =28         -->05位(B)--> 6-[8]
C(16,2)    =120       -->07位(B)--> 9-[17]
C(32,2)    =496       -->09位(B)-->12-[46]
C(64,2)    =2016     -->11位(B)-->15-[70]
C(128,2)  =8128     -->13位(B)-->18-[140]
C(256,2)  =32640    -->15位(B)-->21-[271]
C(512,2)  =130816  -->17位(B)-->24-[547]
C(1024,2)=523776  -->19位(B)-->27-[1052]
C(2048,2)=2096128-->21位(B)-->30-[?]???

27检测到[1028]通过,C(2048,2)-->30-[>2048]系推测
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2018-3-27 17:33:49 | 显示全部楼层
本帖最后由 小铃铛 于 2018-3-27 18:54 编辑

C(1024,2)=1024*1023/2=512*1023=523776-->19位-->27-[1028]
C(512,2) =512*511/2=256*511=130816      -->17位-->24-[?]
C(256,2) =256*255/2=128*255=32640        -->15位-->21-[262]
C(128,2) =128*127/2=64*127=8128           -->13位-->18-[135]
C(64,2)   =64*63/2=32*63=2016                -->11位-->15-[70]
C(32,2)  =32*31/2=16*31=496                   -->09位-->12-[46]
C(16,2)  =16*15/2=8*15=120                    -->07位-->09-[17]
C(8,2)   =8*7/2=4*7=28                            -->05位-->06-[8]
C(4,2)   =4*3/2=2*3=6                              -->03位-->03-[4]
--------------------------------------------------------------------------------
看来,2048桶混有2桶毒酒会需要30个囚徒。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-5-6 02:19 , Processed in 0.045600 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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