mathe 发表于 2014-11-5 08:46:58

找到一种机械构图方法,非常适合计算机来作。 我们的目的是构造含n个黑点的黑白树,叶结点全是黑点,而且同色点不相邻。 如图,n=1只有仅包含一个黑点的图1.1 然后对于每个图,如果去掉其所有叶结点,并且黑白互换,我们可以将其转化为一个低阶的图。 于是,我们反过来可以通过将低阶图先黑白互换,然后每个叶结点都至少先添加一个黑点,此外如果黑点数目还不够,在各白点上继续添加适当数目的黑点即可。 唯一的问题是有些结构会等价,需要删除之。如图,手工轻易构造到n=6

mathe 发表于 2014-11-5 09:36:04

然后手工计算结果
f(2,1)=1
f(4,3)=2
f(5,4)=3, f(9,4)=4.
f(6,5)=6, f(7,5)=5, f(8,5)=4, f(11,5)=8, f(12,5)=6, f(16,5)=9
f(7,6)=11, f(13,6)=18, f(19,6)=21, f(25,6)=22。

然后手工计算结果f(2k+1,2)=1,f(3k+1,3)=2,f(3k+2,3)=1,f(5,4)=3,f(4k+1,4)=4,f(4k+3,4)=3.f(6,5)=6,f(5k+1,5)=9,f(7,5)=5,f(5k+2,5)=6,f(5k+3,5)=4,f(5k+4,5)=3,f(7,6)=10,f(13,6)=18,f(19,6)=20,f(6k+1,6)=21,f(6k+5,6)=5。当然上面的k是有范围限制的,也就是没有特殊值时才使用

mathe 发表于 2014-11-5 09:50:35

hujunhua 发表于 2014-11-5 10:27:51

mathe 发表于 2014-11-5 21:42:10

对于任意一个m*n的解,其中m>n,其中n行,每行和为m,m列,每列和为n。我们在右边继续添加一个n*n对角线阵,对角线元素都是n,那么就得到一个(m+n)*n的解。而我上面分析给出对于充分大的m,解的形式都是这样的,也就是我们只要找那些不包含n*n阶对角阵的“基本解“即可。
进一步如果将解中所以只有一个非零元的列都删除,得到的矩阵可称为其“骨架“,显然通过骨架也非常容易变化回对应的解。而解的骨架正好对应图论表达形式中去掉所有叶接点的图。
如果将解树的所有叶结点都删除,得到的子树可称为其“骨架“,显然通过骨架也非常容易变化回对应的解。

mathe 发表于 2014-11-6 08:17:58

首先我们可以计算骨架对应的图的数目,增长的不算太快,对应序列 http://oeis.org/A035053

mathe 发表于 2014-11-6 11:01:19

Level 2 11 Level 3 111 2211 1122 Level 4 1111 23111 333111 111333 232311 212133 Level 5 11111 241111 331111 112222 3441111 1332222 2424111 1212333 3324111 1143222 44441111 33332222 22223333 11114444 34424111 13343222 42212333 21131444 33242411 11434322 44121233 22313144 Level 6 111111 2511111 3411111 35511111 44511111 25251111 34251111 43251111 34341111 455511111 355251111 445251111 355341111 252525111 342525111 343425111 5555511111 1111155555 4555251111 2111415555 3553551111 3113115555 4452525111 2214141555 3435525111 3231141555 3434252511 3232414155 Level 7 1111111 26111111 35111111 44111111 11222222 366111111 456111111 135222222 555111111 333222222 111333333 262611111 352611111 442611111 114522222 353511111 212133333 532611111 443511111 116322222 4666111111 1555222222 5566111111 3355222222 1144333333 3662611111 4562611111 1354522222 3663511111 2442133333 5462611111 3154522222 4563511111 1356322222 5142133333 5552611111 3334522222 1116433333 3664411111 6551122222 2626261111 1313134444 3526261111 3526261111 4426261111 1145452222 2213134444 3535261111 2121643333 4426351111 1145632222 3544261111 6311452222 4435351111 1163632222 5521213333 56666111111 35555222222 14444333333 46662611111 15554522222 23331344444 55662611111 33554522222 11446433333 46663511111 15556322222 54442133333 36636611111 24424433333 12212255555 45636611111 13565522222 51424433333 36626261111 53313134444 12232325555 45626261111 13545452222 26313134444 45635261111 13563452222 51421643333 55526261111 33345452222 11164643333 35366261111 21244643333 14122325555 44366261111 11655452222 22533134444 35456261111 63135452222 21514643333 44366351111 11655632222 55244213333 35262626111 56131313444 14323232555

wayne 发表于 2014-11-6 11:12:32

mathe 在27# 贴的这么壮观的表格 是C++程序 生成的吧? 聪明!

mathe 发表于 2014-11-6 12:52:49

(8,13)阶问题的解也可以全部算出了,应该36个 11382382385858585858 23823823823858585858 41823823823858585858 41841823823858585858 13333238585858585858 43332382385858585858 16332382385858585858 11387332385858585858 41843332385858585858 46323823823858585858 41823873323858585858 16623823823858585858 11387623823858585858 46341823823858585858 41841873323858585858 14876238238238585858 41841876238238585858 13333733585858585858 43334333585858585858 16337332385858585858 46343332385858585858 11387337335858585858 76133332385858585858 41843337335858585858 16673323823858585858 16337623823858585858 46346323823858585858 11387673323858585858 46341823873358585858 14876433323858585858 41841873373358585858 16676238238238585858 11387676238238585858 41846376238238585858 41841876733238585858 41841876762382385858 Total 36 found

mathe 发表于 2014-11-6 13:43:50

前面我们两手工得出俩结果好像走了俩极端,分别是第一个和最后一个解
页: 1 2 [3] 4 5 6
查看完整版本: 仓库管理员的最优入库方案问题