A269941
Triangle read by rows, the coefficients of the partial P-polynomials.
Original entry on oeis.org
1, 0, -1, 0, -1, 1, 0, -1, 2, -1, 0, -1, 1, 2, -3, 1, 0, -1, 2, 2, -3, -3, 4, -1, 0, -1, 1, 2, 2, -1, -6, -3, 6, 4, -5, 1, 0, -1, 2, 2, 2, -3, -3, -6, -3, 4, 12, 4, -10, -5, 6, -1, 0, -1, 1, 2, 2, 2, -3, -3, -6, -6, -3, 1, 12, 6, 12, 4, -10, -20, -5, 15, 6, -7, 1
Offset: 0
[[1]],
[[0], [-1]],
[[0], [-1], [1]],
[[0], [-1], [2], [-1]],
[[0], [-1], [1, 2], [-3], [1]],
[[0], [-1], [2, 2], [-3, -3], [4], [-1]],
[[0], [-1], [1, 2, 2], [-1, -6, -3], [6, 4], [-5], [1]],
[[0], [-1], [2, 2, 2], [-3, -3, -6, -3], [4, 12, 4], [-10, -5], [6], [-1]]
Replacing the sublists by their sums reduces the triangle to a signed version of the triangle A097805.
- Peter Luschny, The P-transform, 2016.
- Peter Luschny, The Partition Transform, A SageMath Jupyter Notebook, GitHub, 2016/2022.
- Marko Riedel, Answer to Question 4943578, Mathematics Stack Exchange, 2024.
- Peter Taylor, Answer to Question 474483, MathOverflow, 2024.
-
PTrans := proc(n, f, nrm:=NULL) local q, p, r, R;
if n = 0 then return [1] fi; R := [seq(0,j=0..n)];
for q in combinat:-partition(n) do
p := [op(ListTools:-Reverse(q)),0]; r := p[1]+1;
mul(binomial(p[j], p[j+1])*f(j)^p[j], j=1..nops(q));
R[r] := R[r]-(-1)^r*% od;
if nrm = NULL then R else [seq(nrm(n,k)*R[k+1],k=0..n)] fi end:
A269941_row := n -> seq(coeffs(p), p in PTrans(n, n -> x[n])):
seq(lprint(A269941_row(n)), n=0..8);
-
def PtransMatrix(dim, f, norm = None, inverse = False, reduced = False):
i = 1; F = [1]
if reduced:
while i <= dim: F.append(f(i)); i += 1
else:
while i <= dim: F.append(F[i-1]*f(i)); i += 1
C = [[0 for k in range(m+1)] for m in range(dim)]
C[0][0] = 1
if inverse:
for m in (1..dim-1):
C[m][m] = -C[m-1][m-1]/F[1]
for k in range(m-1, 0, -1):
C[m][k] = -(C[m-1][k-1]+sum(F[i]*C[m][k+i-1]
for i in (2..m-k+1)))/F[1]
else:
for m in (1..dim-1):
C[m][m] = -C[m-1][m-1]*F[1]
for k in range(m-1, 0, -1):
C[m][k] = -sum(F[i]*C[m-i][k-1] for i in (1..m-k+1))
if norm == None: return C
for m in (1..dim-1):
for k in (1..m): C[m][k] *= norm(m,k)
return C
def PMultiCoefficients(dim, norm = None, inverse = False):
def coefficient(p):
if p <= 1: return [p]
return SR(p).fraction(ZZ).numerator().coefficients()
f = lambda n: var('x'+str(n))
P = PtransMatrix(dim, f, norm, inverse)
return [[coefficient(p) for p in L] for L in P]
print(flatten(PMultiCoefficients(9)))
A268441
Triangle read by rows, the coefficients of the Bell polynomials.
Original entry on oeis.org
1, 0, 1, 0, 1, 1, 0, 1, 3, 1, 0, 1, 3, 4, 6, 1, 0, 1, 10, 5, 15, 10, 10, 1, 0, 1, 10, 15, 6, 15, 60, 15, 45, 20, 15, 1, 0, 1, 35, 21, 7, 105, 70, 105, 21, 105, 210, 35, 105, 35, 21, 1, 0, 1, 35, 56, 28, 8, 280, 210, 280, 168, 28, 105, 840, 280, 420, 56, 420, 560, 70, 210, 56, 28, 1
Offset: 0
[[1]]
[[0], [1]]
[[0], [1], [1]]
[[0], [1], [3], [1]]
[[0], [1], [3, 4], [6], [1]]
[[0], [1], [10, 5], [15, 10], [10], [1]]
[[0], [1], [10, 15, 6], [15, 60, 15], [45, 20], [15], [1]]
Replacing the sublists by their sums reduces the triangle to the triangle of the Stirling numbers of second kind (A048993).
- L. Comtet, Advanced combinatorics, The art of finite and infinite expansions, 1974.
- Peter Luschny, First 26 rows, flattened
- E. T. Bell, Partition polynomials, Ann. Math., 29 (1927-1928), 38-46.
- E. T. Bell, Exponential polynomials, Ann. Math., 35 (1934), 258-277.
- Peter Luschny, The Bell transform
-
BellCoeffs[n_, k_] := Module[{v, r},
v = Table[Subscript[x,j], {j,1,n}]; (* list of variables *)
r = Table[Subscript[x,j]->1, {j,1,n}]; (* evaluated at 1 *)
MonomialList[BellY[n,k,v], v, NegativeLexicographic] /. r];
A268441Row[n_] := Table[BellCoeffs[n,k], {k,0,n}] // Flatten;
Do[Print[A268441Row[n]], {n,0,8}] (* Peter Luschny, Feb 08 2016 *)
max = 9; egf = Exp[Sum[x[k]*t^k/k!, {k, 1, max}]]; P = Table[n!* SeriesCoefficient[egf, {t, 0, n}], {n, 0, max-1}]; row[n_] := (s = Split[ Sort[{ Exponent[# /. x[] -> x, x], #}& /@ (List @@ Expand[P[[n]]])], #1[[1]] == #2[[1]]&]; Join[{0}, #[[All, 2]]& /@ (s /. x[] -> 1) // Flatten]); row[1] = {1}; Array[row, max] // Flatten (* Jean-François Alcover, Feb 08 2016 *)
-
import itertools
def A268441_row(n):
c = [bell_polynomial(n,k).coefficients() for k in (0..n)]
if n>0: c[0] = [0]
return list(itertools.chain(*c))
for n in range(9): print(A268441_row(n))
A269942
Triangle read by rows, the coefficients of the inverse partial P-polynomials.
Original entry on oeis.org
1, 0, -1, 0, -1, 1, 0, -2, 1, 2, -1, 0, -5, 5, -1, 5, -2, -3, 1, 0, -14, 21, -3, -6, 1, 14, -12, 2, -9, 3, 4, -1, 0, -42, 84, -28, -28, 7, 7, -1, 42, -56, 7, 14, -2, -28, 21, -3, 14, -4, -5, 1
Offset: 0
[[1]],
[[0], [-1]],
[[0], [-1], [1]],
[[0], [-2, 1], [2], [-1]],
[[0], [-5, 5, -1], [5, -2], [-3], [1]],
[[0], [-14, 21, -3, -6, 1], [14, -12, 2], [-9, 3], [4], [-1]],
[[0], [-42,84,-28,-28,7,7,-1],[42,-56,7,14,-2],[-28,21,-3],[14,-4],[-5],[1]]
Replacing the sublists by their sums reduces the triangle to a signed version of the triangle A097805. The column 1 of sublists is A111785 in a different order.
Showing 1-3 of 3 results.
Comments