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.

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.

Original entry on oeis.org

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

Views

Author

Peter Luschny, Apr 03 2012

Keywords

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.

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.

Crossrefs

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