cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

Showing 1-1 of 1 results.

A321620 The Riordan square of the Riordan numbers, triangle read by rows, T(n, k) for 0 <= k <= n.

Original entry on oeis.org

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

Views

Author

Peter Luschny, Nov 15 2018

Keywords

Comments

If gf is a generating function of the sequence a then by the 'Riordan square of a' we understand the integer triangle given by the Riordan array (gf, gf). This mapping can be seen as an operator RS: Z[[x]] -> Mat[Z].
For instance A039599 is the Riordan square of the Catalan numbers, A172094 is the Riordan square of the little Schröder numbers and A063967 is the Riordan square of the Fibonacci numbers. The Riordan square of the simplest sequence of positive numbers (A000012) is the Pascal triangle.
The generating functions used are listed in the table below. They may differ slightly from those defined elsewhere in order to ensure that RS(a) is invertible (as a matrix). We understand this as a kind of normalization.
---------------------------------------------------------------------------
Sequence a | RS(a) | gf(a)
---------------------------------------------------------------------------
Catalan | A039599 | (1 - sqrt(1 - 4*x))/(2*x).
1, Riordan | A321620 | 1 + 2*x/(1 + x + sqrt(1 - 2*x - 3*x^2)).
Motzkin | A321621 | (1 - x - sqrt(1 - 2*x - 3*x^2))/(2*x^2).
Fine | A321622 | 1 + (1 - sqrt(1 - 4*x))/(3 - sqrt(1 - 4*x)).
large Schröder | A321623 | (1 - x - sqrt(1 - 6*x + x^2))/(2*x).
little Schröder | A172094 | (1 + x - sqrt(1 - 6*x + x^2))/(4*x).
Lucas | A321624 | 1 + x*(1 + 2*x)/(1 - x - x^2).
swinging factorial | A321625 | (1 + x/(1 - 4*x^2))/sqrt(1 - 4*x^2).
ternary trees ||A109956|| u = sqrt(x*3/4); sin(arcsin(3*u)/3)/u.
central trinomial | A116392 | 1/sqrt(1 - 2*x - 3*x^2)
Bell | A154380 | Sum_{k>=0} x^k/Product_{j=1..k}(1 - j*x).
(2*n-1)!! | A321627 | 1/(1-x/(1-2*x/(1-3*x/(1-4*x/(1-5*x/...
powers of 2 | A038208 | 1/(1 - 2*x).
the all 1's seq. | A007318 | 1/(1 - x).
Fibonacci | A063967 | 1/(1 - x - x^2).
tribonacci | A187889 | 1/(1 - x - x^2 - x^3).
tetranacci | A353593 | 1/(1 - x - x^2 - x^3 - x^4).
Jacobsthal | A322942 | (2*x^2-1)/((x + 1)*(2*x - 1))

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
		

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.
Showing 1-1 of 1 results.