本帖最后由 hbghlyj 于 2020-1-15 23:07 编辑
(1)从1-2000中最多能选出多少个数使得选出的数中任意两数之差不为5,7,11,17,29
构造一个立方体
同行相邻的差为8,同列相邻的差为13,全部加19又叠在上面
若两个数的差不为5,7,11,17,29这两个数就连一条边,限制越多,连的边越少,反而越简单
(2)从1-2000中最多能选出多少个数使得选出的数中任意两数之差不为5,8,11,12,19
似乎是用ford-fulkerson算法
(1)用mma穷举,鉴于阶乘爆炸,我们只有五个样本20,21,22,23,24,均已验证元素个数最大
In[2]:= Select[Subsets[Range[24],{12}],Intersection[#,Join[#+8,#+13,#+19]]=={}&]
Out[2]= {{1,2,3,6,7,8,12,13,17,18,23,24},{1,2,3,7,8,12,13,17,18,19,23,24},{1,2,6,7,8,11,12,13,17,18,22,23},{1,2,6,7,8,12,13,17,18,22,23,24},{1,2,6,7,11,12,13,16,17,18,22,23},{1,2,7,8,12,13,17,18,19,22,23,24},{2,3,7,8,9,12,13,14,18,19,23,24},{2,3,7,8,12,13,14,17,18,19,23,24}}
In[3]:= Select[Subsets[Range[23],{12}],Intersection[#,Join[#+8,#+13,#+19]]=={}&]
Out[3]= {{1,2,6,7,8,11,12,13,17,18,22,23},{1,2,6,7,11,12,13,16,17,18,22,23}}
In[4]:= Select[Subsets[Range[21],{10}],Intersection[#,Join[#+8,#+13,#+19]]=={}&]
Out[4]= {{1,2,3,6,7,8,12,13,17,18},{1,2,3,7,8,12,13,17,18,19},{1,2,6,7,8,11,12,13,17,18},{1,2,6,7,11,12,13,16,17,18},{1,5,6,7,10,11,12,16,17,21},{1,5,6,10,11,12,15,16,17,21},{2,3,4,7,8,9,13,14,18,19},{2,3,4,8,9,13,14,18,19,20},{2,3,7,8,9,12,13,14,18,19},{2,3,7,8,12,13,14,17,18,19},{3,4,5,8,9,10,14,15,19,20},{3,4,5,9,10,14,15,19,20,21},{3,4,8,9,10,13,14,15,19,20},{3,4,8,9,13,14,15,18,19,20},{4,5,6,9,10,11,15,16,20,21},{4,5,9,10,11,14,15,16,20,21},{4,5,9,10,14,15,16,19,20,21}}
In[5]:= Select[Subsets[Range[22],{11}],Intersection[#,Join[#+8,#+13,#+19]]=={}&]
Out[5]= {{1,2,6,7,8,11,12,13,17,18,22},{1,2,6,7,11,12,13,16,17,18,22},{1,5,6,7,10,11,12,16,17,21,22},{1,5,6,10,11,12,15,16,17,21,22}}
In[7]:= Select[Subsets[Range[20],{10}],Intersection[#,Join[#+8,#+13,#+19]]=={}&]
Out[7]= {{1,2,3,6,7,8,12,13,17,18},{1,2,3,7,8,12,13,17,18,19},{1,2,6,7,8,11,12,13,17,18},{1,2,6,7,11,12,13,16,17,18},{2,3,4,7,8,9,13,14,18,19},{2,3,4,8,9,13,14,18,19,20},{2,3,7,8,9,12,13,14,18,19},{2,3,7,8,12,13,14,17,18,19},{3,4,5,8,9,10,14,15,19,20},{3,4,8,9,10,13,14,15,19,20},{3,4,8,9,13,14,15,18,19,20}}
In[8]:= Select[Subsets[Range[19],{10}],Intersection[#,Join[#+8,#+13,#+19]]=={}&]
Out[8]= {{1,2,3,6,7,8,12,13,17,18},{1,2,3,7,8,12,13,17,18,19},{1,2,6,7,8,11,12,13,17,18},{1,2,6,7,11,12,13,16,17,18},{2,3,4,7,8,9,13,14,18,19},{2,3,7,8,9,12,13,14,18,19},{2,3,7,8,12,13,14,17,18,19}}
最后一个数据不算,因为它相当于把Intersection[#,#+19]=={}&这个条件弃了
引语中指的是什么神奇的方法?请不吝赐教 |