|
EXAMPLE
|
A(2,3) = 10: (1,2,3,4), (1,2,4,3), (1,3,4,2), (1,4,2,3), (2,3,1,4), (2,4,3,1), (3,1,2,4), (3,2,4,1), (4,1,3,2), (4,2,1,3).
a(2,4) = 16: (1,2,3,4), (1,2,4,3), (1,3,2,4), (1,4,3,2), (2,1,3,4), (2,1,4,3), (2,3,4,1), (2,4,1,3), (3,1,4,2), (3,2,1,4), (3,4,1,2), (3,4,2,1), (4,1,2,3), (4,2,3,1), (4,3,1,2), (4,3,2,1).
A(2,5) = 2: (1,2,3,4), (1,2,4,3).
A(3,1) = 6: (1,2,3,4,5,6), (1,2,3,4,6,5), (1,2,3,5,4,6), (1,2,3,5,6,4), (1,2,3,6,4,5), (1,2,3,6,5,4).
Square array A(n,k) begins:
0 : 1, 1, 1, 1, 1, 1, ...
1 : 2, 1, 2, 1, 2, 1, ...
2 : 24, 2, 10, 10, 16, 2, ...
3 : 720, 6, 84, 108, 264, 150, ...
4 : 40320, 24, 1032, 1800, 6672, 2424, ...
5 : 3628800, 120, 17040, 47520, 241440, 109200, ...
|
|
MAPLE
|
with(numtheory): with(combinat): M:=multinomial:
b:= proc(n, k, p) local l, g; l, g:= sort([divisors(p)[]]),
proc(k, m, i, t) option remember; local d, j; d:= l[i];
`if`(i=1, m!, add(M(k, k-(d-t)*j, (d-t)$j)/j!*
(d-1)!^j *M(m, m-t*j, t$j) *g(k-(d-t)*j, m-t*j,
`if`(d-t=1, [i-1, 0], [i, t+1])[]), j=0..min(k/(d-t),
`if`(t=0, [][], m/t))))
end; g(k, n-k, nops(l), 0)
end:
A:= (n, k)-> `if`(k=0, (2*n)!, b(2*n, n, k)):
seq(seq(A(n, d-n), n=0..d), d=0..12);
|