OFFSET
0,13
COMMENTS
LINKS
Cyril Banderier, Philippe Marchal, and Michael Wallner, Rectangular Young tableaux with local decreases and the density method for uniform random generation (short version), arXiv:1805.09017 [cs.DM], 2018.
Antoine Chambert-Loir, Combinatorics of partitions, blog post 2024.
Alexander Karpov, Generalized knockout tournament seedings, International Journal of Computer Science in Sport, vol. 17(2), 2018.
FORMULA
A(n, k) = (1/k!) * [x^k] P(n, k), where P(n, k) = k!*x^k if n = 0 and otherwise 1 if k = 0 and otherwise Sum_{j=1..k} binomial(n*k, n*j)*P(n, k-j)*x.
A(n, k) = (n*k)!*[x^(n*k)] exp(x^n/n!) for n >= 1. - Peter Luschny, Aug 15 2024
EXAMPLE
Array A(n, k) starts:
[0] 1, 1, 1, 1, 1, 1, ...
[1] 1, 1, 1, 1, 1, 1, ...
[2] 1, 1, 3, 15, 105, 945, ... A001147
[3] 1, 1, 10, 280, 15400, 1401400, ... A025035
[4] 1, 1, 35, 5775, 2627625, 2546168625, ... A025036
[5] 1, 1, 126, 126126, 488864376, 5194672859376, ... A025037
[6] 1, 1, 462, 2858856, 96197645544, 11423951396577720, ... A025038
.
Triangle A(n-k, k) starts:
[0] 1;
[1] 1, 1;
[2] 1, 1, 1;
[3] 1, 1, 1, 1;
[4] 1, 1, 3, 1, 1;
[5] 1, 1, 10, 15, 1, 1;
[6] 1, 1, 35, 280, 105, 1, 1;
MAPLE
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
MATHEMATICA
A[n_, k_] := Product[Binomial[n (j + 1) - 1, n - 1], {j, 0, k - 1}]; Table[A[n - k, k], {n, 0, 9}, {k, 0, n}] // Flatten (* Michael De Vlieger, Apr 13 2023 *)
PROG
(SageMath)
def Arow(n, size):
if n == 0: return [1] * size
return [prod(binomial((j + 1)*n - 1, n - 1) for j in range(k)) for k in range(size)]
for n in range(7): print(Arow(n, 7))
# Alternative, using exponential generating function:
def SetPolyLeadCoeff(m, n):
x, z = var("x, z")
if m == 0: return 1
w = exp(2 * pi * I / m)
o = sum(exp(z * w ** k) for k in range(m)) / m
t = exp(x * (o - 1)).taylor(z, 0, m*n)
p = factorial(m*n) * t.coefficient(z, m*n)
return p.leading_coefficient(x)
for m in range(7):
print([SetPolyLeadCoeff(m, k) for k in range(6)])
CROSSREFS
KEYWORD
nonn,tabl
AUTHOR
Peter Luschny, Apr 13 2023
STATUS
approved