A365673 Array A(n, k) read by ascending antidiagonals. Polygonal number weighted generalized Catalan sequences.
1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 3, 4, 1, 1, 1, 4, 15, 8, 1, 1, 1, 5, 34, 105, 16, 1, 1, 1, 6, 61, 496, 945, 32, 1, 1, 1, 7, 96, 1385, 11056, 10395, 64, 1, 1, 1, 8, 139, 2976, 50521, 349504, 135135, 128, 1, 1, 1, 9, 190, 5473, 151416, 2702765, 14873104, 2027025, 256, 1
Offset: 0
Examples
Array A(n, k) starts: (polygon|diagonal|triangle) [0] 1, 1, 1, 1, 1, 1, 1, ... A258837 A000012 [1] 1, 1, 2, 4, 8, 16, 32, ... A080956 A011782 [2] 1, 1, 3, 15, 105, 945, 10395, ... A001477 A001147 A001498 [3] 1, 1, 4, 34, 496, 11056, 349504, ... A000217 A002105 A365674 [4] 1, 1, 5, 61, 1385, 50521, 2702765, ... A000290 A000364 A060058 [5] 1, 1, 6, 96, 2976, 151416, 11449296, ... A000326 A126151 A366138 [6] 1, 1, 7, 139, 5473, 357721, 34988647, ... A000384 A126156 A365672 [7] 1, 1, 8, 190, 9080, 725320, 87067520, ... A000566 A366150 A366149 [8] 1, 1, 9, 249, 14001, 1322001, 188106489, ... A000567 A054556 A366137
Links
- Wikipedia, Polygonal number.
Crossrefs
Programs
-
Maple
poly := (s, n) -> ((s - 2) * n^2 - (s - 4) * n) / 2: T := proc(s, n, k) option remember; if k = 0 then 1 else if k = n then T(s, n, k-1) else poly(s, n - k + 1) * T(s, n, k - 1) + T(s, n - 1, k) fi fi end: for n from 0 to 8 do A := (n, k) -> T(n, k, k): seq(A(n, k), k = 0..9) od; # Alternative, using continued fractions: A := proc(p, L) local CF, poly, k, m, P, ser; poly := (s, n) -> ((s - 2)*n^2 - (s - 4)*n)/2; CF := 1 + x; for k from 1 to L do m := L - k + 1; P := poly(p, m); CF := 1/(1 - P*x*CF) od; ser := series(CF, x, L); seq(coeff(ser, x, m), m = 0..L-1) end: for p from 0 to 8 do lprint(A(p, 8)) od;
-
Mathematica
poly[s_, n_] := ((s - 2) * n^2 - (s - 4) * n) / 2; T[s_, n_, k_] := T[s, n, k] = If[k == 0, 1, If[k == n, T[s, n, k - 1], poly[s, n - k + 1] * T[s, n, k - 1] + T[s, n - 1, k]]]; A[n_, k_] := T[n, k, k]; Table[A[n - k, k], {n, 0, 10}, {k, 0, n}] // Flatten (* Jean-François Alcover, Nov 27 2023, from first Maple program *)
-
PARI
A(p, n) = { my(CF = 1 + x, poly(s, n) = ((s - 2)*n^2 - (s - 4)*n)/2, m, P ); for(k = 1, n, m = n - k + 1; P = poly(p, m); CF = 1/(1 - P*x*CF) ); Vec(CF + O(x^(n))) } for(p = 0, 8, print(A(p, 8))) \\ Michel Marcus and Peter Luschny, Oct 02 2023
-
Python
from functools import cache @cache def T(s, n, k): if k == 0: return 1 if k == n: return T(s, n, k - 1) p = (n - k + 1) * ((s - 2) * (n - k + 1) - (s - 4)) // 2 return p * T(s, n, k - 1) + T(s, n - 1, k) def A(n, k): return T(n, k, k) for n in range(9): print([A(n, k) for k in range(9)])
Comments