A008281 Triangle of Euler-Bernoulli or Entringer numbers read by rows.
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
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.
Links
- Alois P. Heinz, Rows n = 0..140 (rows n = 0..43 from Vincenzo Librandi)
- V. I. Arnold, Bernoulli-Euler updown numbers associated with function singularities, their combinatorics and arithmetics, Duke Math. J. 63 (1991), 537-555.
- V. I. Arnold, The calculus of snakes and the combinatorics of Bernoulli, Euler and Springer numbers of Coxeter groups, Uspekhi Mat. nauk., 47 (#1, 1992), 3-45 = Russian Math. Surveys, Vol. 47 (1992), 1-51.
- B. Gourevitch, L'univers de Pi
- M. Josuat-Vergès, J.-C. Novelli and J.-Y. Thibon, The algebraic combinatorics of snakes, arXiv preprint arXiv:1110.5272 [math.CO], 2011.
- J. Millar, N. J. A. Sloane and N. E. Young, A new operation on sequences: the Boustrophedon transform, J. Combin. Theory, 17A (1996) 44-54 (Abstract, pdf, ps).
- C. Poupard, De nouvelles significations énumératives des nombres d'Entringer, Discrete Math., 38 (1982), 265-271.
- Heesung Shin and Jiang Zeng, More bijections for Entringer and Arnold families, arXiv:2006.00507 [math.CO], 2020.
- OEIS Wiki, Boustrophedon transform.
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
Comments