|
MAPLE
|
g:= (l, i, n)-> `if`(i=0, `if`(n=0, [[]], []), [seq(map(x->
[x[], j], g(l, i-1, n-j))[], j=0..min(l[i], n))]):
h:= (p, v)-> (q-> add((s-> add(`if`(andmap(i-> irem(k[i], p[i]
/igcd(t, p[i]))=0, [$1..q]), mul((m-> binomial(m, k[i]*m
/p[i]))(igcd(t, p[i])), i=1..q), 0), t=1..s)/s)(ilcm(seq(
`if`(k[i]=0, 1, p[i]), i=1..q))), k=g(p, q, v)))(nops(p)):
b:= (n, i, l, v)-> `if`(n=0 or i=1, 2^((p-> h(p, v))([l[], 1$n]))
/n!, add(b(n-i*j, i-1, [l[], i$j], v)/j!/i^j, j=0..n/i)):
a:= n-> b(2*n$2, [], n)-1:
seq(a(n), n=0..5);
|