A := (n, k) -> mul(binomial((j + 1)*n - 1, n - 1), j = 0..k-1):
seq(seq(A(n-k, k), k = 0..n), n = 0..9);
# Alternative: using recursion:
A := proc(n, k) local P; P := proc(n, k) option remember;
if n = 0 then return x^k*k! fi; if k = 0 then 1 else add(binomial(n*k, n*j)*
P(n, k-j)*x, j=1..k) fi end: coeff(P(n, k), x, k) / k! end:
seq(print(seq(A(n, k), k = 0..5)), n = 0..6);
# Alternative: using exponential generating function:
egf := n -> ifelse(n=0, 1, exp(x^n/n!)): ser := n -> series(egf(n), x, 8*n):
row := n -> local k; seq((n*k)!*coeff(ser(n), x, n*k), k = 0..6):
for n from 0 to 6 do [n], row(n) od; #
Peter Luschny, Aug 15 2024