A321620 The Riordan square of the Riordan numbers, triangle read by rows, T(n, k) for 0 <= k <= n.
1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 3, 2, 1, 1, 3, 5, 5, 3, 1, 1, 6, 13, 10, 7, 4, 1, 1, 15, 29, 26, 16, 9, 5, 1, 1, 36, 73, 61, 42, 23, 11, 6, 1, 1, 91, 181, 157, 103, 61, 31, 13, 7, 1, 1, 232, 465, 398, 271, 156, 83, 40, 15, 8, 1, 1, 603, 1205, 1040, 702, 419, 221, 108, 50, 17, 9, 1, 1
Offset: 0
Examples
The triangle starts: [ 0] 1 [ 1] 1 1 [ 2] 0 1 1 [ 3] 1 1 1 1 [ 4] 1 3 2 1 1 [ 5] 3 5 5 3 1 1 [ 6] 6 13 10 7 4 1 1 [ 7] 15 29 26 16 9 5 1 1 [ 8] 36 73 61 42 23 11 6 1 1 [ 9] 91 181 157 103 61 31 13 7 1 1 [10] 232 465 398 271 156 83 40 15 8 1 1
Links
- Peter Luschny, The Riordan Square Transform, 2018.
Crossrefs
Programs
-
Maple
RiordanSquare := proc(d, n, exp:=false) local td, M, k, m, u, j; series(d, x, n+1); td := [seq(coeff(%, x, j), j = 0..n)]; M := Matrix(n); for k from 1 to n do M[k, 1] := td[k] od; for k from 1 to n-1 do for m from k to n-1 do M[m+1, k+1] := add(M[j, k]*td[m-j+2], j = k..m) od od; if exp then u := 1; for k from 1 to n-1 do u := u * k; for m from 1 to k do j := `if`(m = 1, u, j/(m-1)); M[k+1, m] := M[k+1, m] * j od od fi; M end: RiordanSquare(1 + 2*x/(1 + x + sqrt(1 - 2*x - 3*x^2)), 8);
-
Mathematica
RiordanSquare[gf_, len_] := Module[{T}, T[n_, k_] := T[n, k] = If[k == 0, SeriesCoefficient[gf, {x, 0, n}], Sum[T[j, k-1] T[n-j, 0], {j, k-1, n-1}]]; Table[T[n, k], {n, 0, len-1}, {k, 0, n}]]; M = RiordanSquare[1 + 2x/(1 + x + Sqrt[1 - 2x - 3x^2]), 12]; M // Flatten (* Jean-François Alcover, Nov 24 2018 *)
-
Sage
# uses[riordan_array from A256893] def riordan_square(gf, len, exp=false): return riordan_array(gf, gf, len, exp) riordan_square(1 + 2*x/(1 + x + sqrt(1 - 2*x - 3*x^2)), 10) # Alternatively, given a list S: def riordan_square_array(S): N = len(S) M = matrix(ZZ, N, N) for n in (0..N-1): M[n, 0] = S[n] for k in (1..N-1): for m in (k..N-1): M[m, k] = sum(M[j, k-1]*S[m-j] for j in (k-1..m-1)) return M riordan_square_array([1, 1, 0, 1, 1, 3, 6, 15, 36]) # Peter Luschny, Apr 03 2020
Formula
Given a generating function g and an positive integer N compute the Taylor expansion at the origin t(k) = [x^k] g(x) for k in [0...N-1] and set T(n, 0) = t(n) for n in [0...N-1]. Then compute T(m, k) = Sum_{j in [k-1...m-1]} T(j, k - 1) t(m - j) for k in [1...N-1] and for m in [k...N-1]. The resulting (0, 0)-based lower triangular array is the Riordan square generated by g.
Comments