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.

A008281 Triangle of Euler-Bernoulli or Entringer numbers read by rows.

Original entry on oeis.org

1, 0, 1, 0, 1, 1, 0, 1, 2, 2, 0, 2, 4, 5, 5, 0, 5, 10, 14, 16, 16, 0, 16, 32, 46, 56, 61, 61, 0, 61, 122, 178, 224, 256, 272, 272, 0, 272, 544, 800, 1024, 1202, 1324, 1385, 1385, 0, 1385, 2770, 4094, 5296, 6320, 7120, 7664, 7936, 7936
Offset: 0

Views

Author

Keywords

Comments

Zig-Zag numbers (see the Conway and Guy reference p. 110 and the J.-P. Delahaye reference, p. 31).
Approximation to Pi: 2*n*a(n-1,n-1)/a(n,n), n >= 3. See A132049(n)/A132050(n). See the Delahaye reference, p. 31.
The sequence (a(n,n)) of the last element of each row is that of Euler up/down numbers A000111, the Boustrophedon transform of sequence A000007 = (0^n) = (1, 0, 0, 0, ...). - M. F. Hasler, Oct 07 2017

Examples

			This version of the triangle begins:
[0] [1]
[1] [0,    1]
[2] [0,    1,    1]
[3] [0,    1,    2,    2]
[4] [0,    2,    4,    5,    5]
[5] [0,    5,   10,   14,   16,   16]
[6] [0,   16,   32,   46,   56,   61,   61]
[7] [0,   61,  122,  178,  224,  256,  272,  272]
[8] [0,  272,  544,  800, 1024, 1202, 1324, 1385, 1385]
[9] [0, 1385, 2770, 4094, 5296, 6320, 7120, 7664, 7936, 7936]
See A008280 and A108040 for other versions.
		

References

  • J. H. Conway and R. K. Guy, The Book of Numbers, New York: Springer-Verlag, p. 110.
  • J.-P. Delahaye, Pi - die Story (German translation), Birkhäuser, 1999 Basel, p. 31. French original: Le fascinant nombre Pi, Pour la Science, Paris, 1997.

Crossrefs

Programs

  • Haskell
    a008281 n k = a008281_tabl !! n !! k
    a008281_row n = a008281_tabl !! n
    a008281_tabl = iterate (scanl (+) 0 . reverse) [1]
    -- Reinhard Zumkeller, Sep 10 2013
    
  • Maple
    A008281 := proc(h,k) option remember ;
        if h=1 and k=1 or h=0 then
            RETURN(1) ;
        elif h>=1 and k> h then
            RETURN(0) ;
        elif h=k then
            RETURN( procname(h,h-1)) ;
        else
            RETURN( add(procname(h-1,j),j=h-k..h-1) ) ;
        fi ;
    end: # R. J. Mathar, Nov 27 2006
    # Alternative:
    T := proc(n, k) option remember;
    ifelse(k=0, 0^n, T(n, k-1) + T(n-1, n-k)) end: # Peter Luschny, Sep 30 2023
  • Mathematica
    a[0, 0] = 1; a[n_, m_] /; (n < m || m < 0) = 0; a[n_, m_] := a[n, m] = Sum[a[n-1, n-k], {k, m}]; Flatten[Table[a[n, m], {n, 0, 9}, {m, 0, n}]] (* Jean-François Alcover, May 31 2011, after formula *)
  • Python
    # Python 3.2 or higher required.
    from itertools import accumulate
    A008281_list = blist = [1]
    for _ in range(30):
        blist = [0]+list(accumulate(reversed(blist)))
        A008281_list.extend(blist) # Chai Wah Wu, Sep 18 2014
    
  • Python
    from functools import cache
    @cache
    def seidel(n):
        if n == 0: return [1]
        rowA = seidel(n - 1)
        row = [0] + seidel(n - 1)
        row[1] = row[n]
        for k in range(2, n + 1): row[k] = row[k - 1] + rowA[n - k]
        return row
    def A008281row(n): return seidel(n)
    for n in range(8): print(A008281row(n)) # Peter Luschny, Jun 01 2022

Formula

a(0,0)=1, a(n,m)=0 if n < m, a(n,m)=0 if m < 0, otherwise a(n,m) = Sum_{k=1..m} a(n-1,n-k).
T(n, k) = T(n, k-1) + T(n-1, n-k) for k > 0, T(n, 0) = 0^n. - Peter Luschny, Sep 30 2023