找回密码
 欢迎注册
楼主: 王守恩

[原创] 三重内积(增加难度)的最小值

[复制链接]
 楼主| 发表于 8 小时前 | 显示全部楼层
楼上是这样一串数——2, 6, 13, 22, 36, 53, 75, 102, 135, 173, 219, 271, 331, 399, 476, 561, 657, 762, 878, 1005, 1144, 1294, 1458, 1634, 1824, 2028, 2247, 2480, 2730, 2995, ......

Table[Round[(26 n + 19 n^2 + 2 n^3)/24], {n, 40}]——通项公式出奇的好——OEIS是没有的——这串数也是有现实意义。

n=1: a={2} b={1} 和=2= 2(a)*1(b)*1(c)
n=2: a={1,2} b={1,2} 和=6= 1(a)*1(b)*2(c) + 2(a)*2(b)*1(c)
n=3: a={1,2,3} b={1,1,2} 和=13= 1(a)*1(b)*3(c) + 2(a)*1(b)*2(c) + 3(a)*2(b)*1(c)
n=4: a={1,1,2,3} b={1,2,3,1} 和=22=1(a)*1(b)*4(c) +  1(a)*2(b)*3(c) + 2(a)*3(b)*1(c) + 3(a)*1(b)*2(c)
n=5: a={1,1,2,3,4} b={1,2,1,3,1} 和=36= 1(a)*1(b)*5(c) + 1(a)*2(b)*4(c) + 2(a)*1(b)*3(c) + 3(a)*3(b)*1(c) + 4(a)*1(b)*2(c)
n=6: a={1,1,1,2,3,4} b={1,2,3,1,4,1} 和=53=1(a)*1(b)*6(c) + 1(a)*2(b)*5(c) +  1(a)*3(b)*3(c) + 2(a)*1(b)*4(c) + 3(a)*4(b)*1(c) + 4(a)*1(b)*2(c)
n=7: a={1,1,1,2,3,4,5} b={1,2,3,1,4,1,1} 和=75
n=8: a={1,1,1,1,2,3,4,5} b={1,2,3,4,1,5,1,1} 和=102
n=9: a={1,1,1,1,2,3,4,5,6} b={1,2,3,4,1,1,5,1,1} 和=135
n=10: a={1,1,1,1,1,2,3,4,5,6} b={1,2,3,4,6,1,1,5,1,1} 和=173
n=11: a={1,1,1,1,1,2,3,4,5,6,7} b={1,2,3,4,5,1,1,6,1,1,1} 和=219
n=12: a={1,1,1,1,1,1,2,3,4,5,6,7} b={1,2,3,4,5,7,1,1,1,6,1,1} 和=271
n=13: a={1,1,1,1,1,1,2,3,4,5,6,7,8} b={1,2,3,4,5,7,1,1,1,6,1,1,1} 和=331
n=14: a={1,1,1,1,1,1,1,2,3,4,5,6,7,8} b={1,2,3,4,5,6,8,1,1,1,7,1,1,1} 和=399
n=15: a={1,1,1,1,1,1,1,2,3,4,5,6,7,8,9} b={1,2,3,4,5,6,8,1,1,1,1,7,1,1,1} 和=476

SystemException["MemoryAllocationFailure"]——说来不了了。

楼上的解法是来不了了——有一个想法——若能把a与b合并为一个数字串——b是关键——什么规律?谢谢!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 4 小时前 | 显示全部楼层
还是简单一点。
  1. Table[a = Join[ConstantArray[1, Floor[(n + 1)/2]], Range[2, n - Floor[(n + 1)/2] + 1]];
  2.   b = Join[ConstantArray[1, Floor[n/2]], Range[n - Floor[n/2] + 1 + Mod[n - 1, 2], n + 1]];
  3.   k = MinimalBy[DeleteDuplicates[Permutations[b]], Total[ReverseSort[a*#]*Range[n]] &] // First;
  4.   m = Total[ReverseSort[a*k]*Range[n]];
  5.   Print["n=", n, ": a=", a, " b=", k, " 和=", m], {n, 20}]
复制代码

n=1: a={1} b={2} 和=2
n=2: a={1,2} b={3,1} 和=7
n=3: a={1,1,2} b={3,4,1} 和=16
n=4: a={1,1,2,3} b={4,5,1,1} 和=30
n=5: a={1,1,1,2,3} b={4,5,6,1,1} 和=50
n=6: a={1,1,1,2,3,4} b={5,6,7,1,1,1} 和=77
n=7: a={1,1,1,1,2,3,4} b={5,6,7,8,1,1,1} 和=112
n=8: a={1,1,1,1,2,3,4,5} b={6,7,8,9,1,1,1,1} 和=156
n=9: a={1,1,1,1,1,2,3,4,5} b={6,7,8,9,10,1,1,1,1} 和=210
n=10: a={1,1,1,1,1,2,3,4,5,6} b={7,8,9,10,11,1,1,1,1,1} 和=275
n=11: a={1,1,1,1,1,1,2,3,4,5,6} b={7,8,9,10,11,12,1,1,1,1,1} 和=352
n=12: a={1,1,1,1,1,1,2,3,4,5,6,7} b={8,9,10,11,12,13,1,1,1,1,1,1} 和=442
n=13: a={1,1,1,1,1,1,1,2,3,4,5,6,7} b={8,9,10,11,12,13,14,1,1,1,1,1,1} 和=546

SystemException["MemoryAllocationFailure"]——说来不了了。

{2, 7, 16, 30, 50, 77, 112, 156, 210, 275, 352, 442, 546, 665, 800, 952, 1122, 1311, 1520, 1750, 2002, 2277, 2576, 2900, 3250, 3627, 4032, 4466, 4930, 5425, 5952, 6512, 7106, 7735, 8400, 9102, 9842, 10621, 11440, 12300}

通项公式可以这样—a(n) = Total[Range[2, n + 1]*Reverse[Range[n]]] 。通项公式也可以这样—a(n) = (n^3 + 6 n^2 + 5 n)/6 。A005581 — a(n) = (n-1)*n*(n+4)/6.——没有这样的内容。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2025-10-1 16:03 , Processed in 0.019922 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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