|
|
楼上的数字串。
{1, 0, 0, 1, 24, 2040, 297200, 68938800, 24046189440, 12025780892160,
8302816499443200,
7673688777463632000,
9254768770160124288000,
14255616537578735986867200,
27537152449960680597739468800,
65662040698002721810659005184000,
190637228506535883540302038364160000,
665825560532772251175492202972938240000,
2767806480542211571651550187279222472704000,
13564406360915457771720399143711430952267776000,
77705104689340239554388061645133412621507133440000}
T[n_, k_] := T[n, k] = Module[{u = <||>}, canonical[t_] := Sort[Select[t, # > 0 &]]; search[r_, t_] := Module[{R, s, w, v}, If[r > n, Return[If[Total[t] == 0, 1, 0]]]; R = canonical[t];
If[KeyExistsQ[u, R], Return[u[R]]]; v = 0; Do[If[And @@ (t[[#]] > 0 & /@ s), w = t; Scan[(w[[#]]--) &, s]; v += search[r + 1, w]], {s, Subsets[Range[n], {k}]}]; u[R] = v; v]; search[1, Table[k, {n}]]];
Table[T[m, 3], {m, 0, 20}] ——用这个代码也可以。只是速度慢了。好处是 "3" 可以改。 |
|