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.

A121207 Triangle read by rows. The definition is by diagonals. The r-th diagonal from the right, for r >= 0, is given by b(0) = b(1) = 1; b(n+1) = Sum_{k=0..n} binomial(n+2,k+r)*a(k).

Original entry on oeis.org

1, 1, 1, 1, 1, 2, 1, 1, 3, 5, 1, 1, 4, 9, 15, 1, 1, 5, 14, 31, 52, 1, 1, 6, 20, 54, 121, 203, 1, 1, 7, 27, 85, 233, 523, 877, 1, 1, 8, 35, 125, 400, 1101, 2469, 4140, 1, 1, 9, 44, 175, 635, 2046, 5625, 12611, 21147, 1, 1, 10, 54, 236, 952, 3488, 11226, 30846, 69161, 115975
Offset: 0

Views

Author

N. J. A. Sloane, based on email from R. J. Mathar, Dec 11 2006

Keywords

Comments

From Paul D. Hanna, Dec 12 2006: (Start)
Consider the row reversal, which is A124496 with an additional left column (A000110 = Bell numbers). The matrix inverse of this triangle is very simple:
1;
-1, 1;
-1, -1, 1;
-1, -2, -1, 1;
-1, -3, -3, -1, 1;
-1, -4, -6, -4, -1, 1;
-1, -5, -10, -10, -5, -1, 1;
-1, -6, -15, -20, -15, -6, -1, 1;
-1, -7, -21, -35, -35, -21, -7, -1, 1;
-1, -8, -28, -56, -70, -56, -28, -8, -1, 1; ...
This gives the recurrence and explains why the Bell numbers appear. (End)
Triangle A160185 = reversal then deletes right border of 1's. - Gary W. Adamson, May 03 2009

Examples

			Triangle begins (compare also table 9.2 in the Gould-Quaintance reference):
  1;
  1, 1;
  1, 1,  2;
  1, 1,  3,  5;
  1, 1,  4,  9,  15;
  1, 1,  5, 14,  31, 52;
  1, 1,  6, 20,  54, 121, 203;
  1, 1,  7, 27,  85, 233, 523,  877;
  1, 1,  8, 35, 125, 400,1101, 2469,  4140;
  1, 1,  9, 44, 175, 635,2046, 5625, 12611, 21147;
  1, 1, 10, 54, 236, 952,3488,11226, 30846, 69161, 115975;
  1, 1, 11, 65, 309,1366,5579,20425, 65676,180474, 404663, 678570;
  1, 1, 12, 77, 395,1893,8494,34685,126817,407787,1120666,2512769,4213597;
		

Crossrefs

Diagonals, reading from the right, are A000110, A040027, A045501, A045499, A045500.
A124496 is a very similar triangle, obtained by reversing the rows and appending a rightmost diagonal which is A000110, the Bell numbers. See also A046936, A298804, A186020, A160185.
T(2n,n) gives A297924.

Programs

  • Julia
    function Gould_diag(diag, size)
        size < 1 && return []
        size == 1 && return [1]
        L = [1, 1]
        accu = ones(BigInt, diag)
        for _ in 1:size-2
            accu = cumsum(vcat(accu[end], accu))
            L = vcat(L, accu[end])
        end
    L end # Peter Luschny, Mar 30 2022
  • Maple
    # This is the Jovovic formula with general index 'd'
    # where A040027, A045499, etc. use one explicit integer
    # Index n+1 is shifted to n from the original formula.
    Gould := proc(n, d) local k;
        if n <= 1 then return 1 else
        return add(binomial(n-1+d, k+d)*Gould(k, d), k=0..n-1);
        fi
    end:
    # row and col refer to the extrapolated super-table:
    # working up to row, not row-1, shows also the Bell numbers
    # at the end of each row.
    for row from 0 to 13 do
        for col from 0 to row do
           # 'diag' is constant for one of A040027, A045499 etc.
           diag := row - col;
           printf("%4d, ", Gould(col, diag));
        od;
        print();
    od; # R. J. Mathar
    # second Maple program:
    T:= proc(n, k) option remember; `if`(k=0, 1,
          add(T(n-j, k-j)*binomial(n-1, j-1), j=1..k))
        end:
    seq(seq(T(n, k), k=0..n), n=0..12);  # Alois P. Heinz, Jan 08 2018
  • Mathematica
    g[n_ /; n <= 1, ] := 1; g[n, d_] := g[n, d] = Sum[ Binomial[n-1+d, k+d]*g[k, d], {k, 0, n-1}]; Flatten[ Table[ diag = row-col; g[col, diag], {row, 0, 13}, {col, 0, row}]] (* Jean-François Alcover, Nov 25 2011, after R. J. Mathar *)
    T[n_, k_] := T[n, k] = If[k == 0, 1, Sum[T[n-j, k-j] Binomial[n-1, j-1], {j, 1, k}]]; Table[T[n, k], {n, 0, 12}, {k, 0, n}] // Flatten (* Jean-François Alcover, Jul 26 2018, after Alois P. Heinz *)
  • Python
    # Computes the n-th diagonal of the triangle reading from the right.
    from itertools import accumulate
    def Gould_diag(diag, size):
        if size < 1: return []
        if size == 1: return [1]
        L, accu = [1,1], [1]*diag
        for _ in range(size-2):
            accu = list(accumulate([accu[-1]] + accu))
            L.append(accu[-1])
        return L # Peter Luschny, Apr 24 2016