%I #72 Oct 27 2023 20:58:30
%S 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,
%T 61,122,178,224,256,272,272,0,272,544,800,1024,1202,1324,1385,1385,0,
%U 1385,2770,4094,5296,6320,7120,7664,7936,7936
%N Triangle of Euler-Bernoulli or Entringer numbers read by rows.
%C Zig-Zag numbers (see the Conway and Guy reference p. 110 and the J.-P. Delahaye reference, p. 31).
%C 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.
%C 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
%D J. H. Conway and R. K. Guy, The Book of Numbers, New York: Springer-Verlag, p. 110.
%D 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.
%H Alois P. Heinz, <a href="/A008281/b008281.txt">Rows n = 0..140</a> (rows n = 0..43 from Vincenzo Librandi)
%H V. I. Arnold, <a href="http://dx.doi.org/10.1215/S0012-7094-91-06323-4">Bernoulli-Euler updown numbers associated with function singularities, their combinatorics and arithmetics</a>, Duke Math. J. 63 (1991), 537-555.
%H V. I. Arnold, <a href="http://mi.mathnet.ru/eng/umn4470">The calculus of snakes and the combinatorics of Bernoulli, Euler and Springer numbers of Coxeter groups</a>, Uspekhi Mat. nauk., 47 (#1, 1992), 3-45 = Russian Math. Surveys, Vol. 47 (1992), 1-51.
%H B. Gourevitch, <a href="http://www.pi314.net">L'univers de Pi</a>
%H M. Josuat-Vergès, J.-C. Novelli and J.-Y. Thibon, <a href="http://arxiv.org/abs/1110.5272">The algebraic combinatorics of snakes</a>, arXiv preprint arXiv:1110.5272 [math.CO], 2011.
%H 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 (<a href="http://neilsloane.com/doc/bous.txt">Abstract</a>, <a href="http://neilsloane.com/doc/bous.pdf">pdf</a>, <a href="http://neilsloane.com/doc/bous.ps">ps</a>).
%H C. Poupard, <a href="http://dx.doi.org/10.1016/0012-365X(82)90293-X">De nouvelles significations énumératives des nombres d'Entringer</a>, Discrete Math., 38 (1982), 265-271.
%H Heesung Shin and Jiang Zeng, <a href="https://arxiv.org/abs/2006.00507">More bijections for Entringer and Arnold families</a>, arXiv:2006.00507 [math.CO], 2020.
%H OEIS Wiki, <a href="/wiki/Boustrophedon_transform">Boustrophedon transform</a>.
%F 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).
%F 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
%e This version of the triangle begins:
%e [0] [1]
%e [1] [0, 1]
%e [2] [0, 1, 1]
%e [3] [0, 1, 2, 2]
%e [4] [0, 2, 4, 5, 5]
%e [5] [0, 5, 10, 14, 16, 16]
%e [6] [0, 16, 32, 46, 56, 61, 61]
%e [7] [0, 61, 122, 178, 224, 256, 272, 272]
%e [8] [0, 272, 544, 800, 1024, 1202, 1324, 1385, 1385]
%e [9] [0, 1385, 2770, 4094, 5296, 6320, 7120, 7664, 7936, 7936]
%e See A008280 and A108040 for other versions.
%p A008281 := proc(h,k) option remember ;
%p if h=1 and k=1 or h=0 then
%p RETURN(1) ;
%p elif h>=1 and k> h then
%p RETURN(0) ;
%p elif h=k then
%p RETURN( procname(h,h-1)) ;
%p else
%p RETURN( add(procname(h-1,j),j=h-k..h-1) ) ;
%p fi ;
%p end: # _R. J. Mathar_, Nov 27 2006
%p # Alternative:
%p T := proc(n, k) option remember;
%p ifelse(k=0, 0^n, T(n, k-1) + T(n-1, n-k)) end: # _Peter Luschny_, Sep 30 2023
%t 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 *)
%o (Haskell)
%o a008281 n k = a008281_tabl !! n !! k
%o a008281_row n = a008281_tabl !! n
%o a008281_tabl = iterate (scanl (+) 0 . reverse) [1]
%o -- _Reinhard Zumkeller_, Sep 10 2013
%o (Python)
%o # Python 3.2 or higher required.
%o from itertools import accumulate
%o A008281_list = blist = [1]
%o for _ in range(30):
%o blist = [0]+list(accumulate(reversed(blist)))
%o A008281_list.extend(blist) # _Chai Wah Wu_, Sep 18 2014
%o (Python) from functools import cache
%o @cache
%o def seidel(n):
%o if n == 0: return [1]
%o rowA = seidel(n - 1)
%o row = [0] + seidel(n - 1)
%o row[1] = row[n]
%o for k in range(2, n + 1): row[k] = row[k - 1] + rowA[n - k]
%o return row
%o def A008281row(n): return seidel(n)
%o for n in range(8): print(A008281row(n)) # _Peter Luschny_, Jun 01 2022
%Y Cf. A008280, A000111, A108040.
%K nonn,tabl,nice,easy
%O 0,9
%A _N. J. A. Sloane_