OFFSET
0,10
COMMENTS
The André numbers were studied by Désiré André in the case n=2 around 1880. The present author suggests that the numbers A(n,k) be named in honor of André. Already in 1877 Ludwig Seidel gave an efficient algorithm for computing the coefficients of secant and tangent which immediately carries over to the general case. Anthony Mendes and Jeffrey Remmel give exponential generating functions for the general case.
REFERENCES
Anthony Mendes and Jeffrey Remmel, Generating functions from symmetric functions, Preliminary version of book, available from Jeffrey Remmel's home page.
LINKS
Alois P. Heinz, Antidiagonals k = 0..140, flattened
Désiré André, Développement de séc x et de tang x, C. R. Math. Acad. Sci. Paris 88 (1879), 965-967.
Désiré André, Sur les permutations alternées, J. Math. pur. appl., 7 (1881), 167-184.
Peter Luschny, An old operation on sequences: the Seidel transform.
Ludwig Seidel, Über eine einfache Entstehungsweise der Bernoulli'schen Zahlen und einiger verwandten Reihen, Sitzungsberichte der mathematisch-physikalischen Classe der königlich bayerischen Akademie der Wissenschaften zu München, volume 7 (1877), 157-187. [USA access only through the HATHI TRUST Digital Library]
Ludwig Seidel, Über eine einfache Entstehungsweise der Bernoulli'schen Zahlen und einiger verwandten Reihen, Sitzungsberichte der mathematisch-physikalischen Classe der königlich bayerischen Akademie der Wissenschaften zu München, volume 7 (1877), 157-187. [Access through ZOBODAT]
EXAMPLE
n\k [0][1][2][3][4] [5] [6] [7] [8] [9] [10] [11]
[1] 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 [A000012]
[2] 1, 1, 1, 2, 5, 16, 61, 272, 1385, 7936, 50521, 353792 [A000111]
[3] 1, 1, 1, 1, 3, 9, 19, 99, 477, 1513, 11259, 74601 [A178963]
[4] 1, 1, 1, 1, 1, 4, 14, 34, 69, 496, 2896, 11056 [A178964]
[5] 1, 1, 1, 1, 1, 1, 5, 20, 55, 125, 251, 2300 [A181936]
[6] 1, 1, 1, 1, 1, 1, 1, 6, 27, 83, 209, 461 [A250283]
MAPLE
A181937_list := proc(n, len) local E, dim, i, k; # Seidel's boustrophedon transform
dim := len-1; E := array(0..dim, 0..dim); E[0, 0] := 1;
for i from 1 to dim do
if i mod n = 0 then E[i, 0] := 0 ;
for k from i-1 by -1 to 0 do E[k, i-k] := E[k+1, i-k-1] + E[k, i-k-1] od;
else E[0, i] := 0;
for k from 1 by 1 to i do E[k, i-k] := E[k-1, i-k+1] + E[k-1, i-k] od;
fi od; [E[0, 0], seq(E[k, 0]+E[0, k], k=1..dim)] end:
for n from 2 to 6 do print(A181937_list(n, 12)) od;
# Alternative, with an additional row 0:
Andre := proc(m, n) option remember; local k; ifelse(n <= 0, 1, ifelse(m = 0, 1,
-add(binomial(n, k) * Andre(m, k), k = 0..n-1, m))) end:
T := (n, k) -> abs(Andre(n, k)): seq(lprint(seq(T(n, k), k = 0..11)), n = 0..9);
# Peter Luschny, Aug 19 2024
MATHEMATICA
dim = 13; e[_][0, 0] = 1; e[m_][n_ /; 0 <= n <= dim, 0] /; Mod[n, m] == 0 = 0; e[m_][k_ /; 0 <= k <= dim, n_ /; 0 <= n <= dim] /; Mod[n+k, m] == 0 := e[m][k, n] = e[m][k, n-1] + e[m][k+1, n-1]; e[m_][0, n_ /; 0 <= n <= dim] /; Mod[n, m] == 0 = 0; e[m_][k_ /; 0 <= k <= dim, n_ /; 0 <= n <= dim] /; Mod[n+k, m] != 0 := e[m][k, n] = e[m][k-1, n] + e[m][k-1, n+1]; e[_][_, _] = 0; a[_, 0] = 1; a[m_, n_] := e[m][n, 0] + e[m][0, n]; Table[a[m-n+1, n], {m, 1, dim-1}, {n, 0, m-1}] // Flatten (* Jean-François Alcover, Jul 23 2013, after Maple *)
b[r_, u_, o_, t_] := b[r, u, o, t] = If[u + o == 0, 1, If[t == 0, Sum[b[r, u - j, o + j - 1, Mod[t + 1, r]], {j, 1, u}], Sum[b[r, u + j - 1, o - j, Mod[t + 1, r]], {j, 1, o}]]]; A[n_, k_] := b[n, k, 0, 0];
Table[A[n - k, k], {n, 2, 13}, {k, 0, n - 2}] // Flatten
Andre[n_, k_] := Andre[n, k] = If[k <= 0, 1, If[n == 0, 1, -Sum[Binomial[k, j] Andre[n, j], {j, 0, k-1, n}]]];
Table[Abs[Andre[n, k]], {n, 0, 6}, {k, 0, 11}] // MatrixForm
(* Peter Luschny, Aug 19 2024 *)
PROG
(Sage)
@cached_function
def A(m, n):
if n == 0: return 1
s = -1 if m.divides(n) else 1
t = [m*k for k in (0..(n-1)//m)]
return s*add(binomial(n, k)*A(m, k) for k in t)
A181937_row = lambda m, n: (-1)^int(is_odd(n//m))*A(m, n)
for n in (1..6): print([A181937_row(n, k) for k in (0..20)]) # Peter Luschny, Feb 06 2017
(Julia) # Signed version.
using Memoize
@memoize function André(m, n)
n ≤ 0 && return 1
r = range(0, stop=n-1, step=m)
S = sum(binomial(n, k) * André(m, k) for k in r)
n % m == 0 ? -S : S
end
for m in 1:8 println([André(m, n) for n in 0:11]) end # Peter Luschny, Feb 09 2019
CROSSREFS
KEYWORD
nonn,tabl
AUTHOR
Peter Luschny, Apr 03 2012
STATUS
approved