A181937 André numbers. Square array A(n,k), n>=2, k>=0, read by antidiagonals upwards, A(n,k) = n-alternating permutations of length k.
1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 5, 1, 1, 1, 1, 3, 16, 1, 1, 1, 1, 1, 9, 61, 1, 1, 1, 1, 1, 4, 19, 272, 1, 1, 1, 1, 1, 1, 14, 99, 1385, 1, 1, 1, 1, 1, 1, 5, 34, 477, 7936, 1, 1, 1, 1, 1, 1, 1, 20, 69, 1513, 50521, 1, 1, 1, 1, 1, 1, 1, 6, 55, 496, 11259, 353792
Offset: 0
Examples
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]
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]
Programs
-
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
-
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 (* Jean-François Alcover, Nov 22 2023, after Alois P. Heinz in A250283 *) 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 *)
-
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
Comments