login
A365673
Array A(n, k) read by ascending antidiagonals. Polygonal number weighted generalized Catalan sequences.
6
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,9
COMMENTS
Using polygonal numbers as weights, a recursion for triangles is defined, whose main diagonals represents a family of sequences, which include, among others, the powers of 2, the double factorial of odd numbers, the reduced tangent numbers, and the Euler numbers.
Apart from the edge cases k = 0 and k = n the recursion is T(n, k) = w(n, k) * T(n, k - 1) + T(n - 1, k). T(n, 0) = 1 and T(n, n) = T(n, n-1) if n > 0.
The weights w(n, k) identical to 1 yield the recursion of the Catalan triangle A009766 (with main diagonal the Catalan numbers). Here the polygonal numbers are used as weights in the form w(n, k) = p(s, n - k + 1), where the parameter s is the number of sides of the polygon and p(s, n) = ((s-2) * n^2 - (s-4) * n) / 2, see A317302.
EXAMPLE
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
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 *)
PROG
(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)])
(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
CROSSREFS
Cf. A009766, A366137 (central diagonal), A317302 (table of polygonal numbers).
Sequence in context: A293991 A288638 A261494 * A349574 A168377 A122867
KEYWORD
nonn,tabl
AUTHOR
Peter Luschny, Sep 30 2023
STATUS
approved