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.

A324807 a(n) is the number of endofunctions on a set of size n with preimage constraint {0, 1, 2, 3, 4, 5, 6, 7}.

Original entry on oeis.org

1, 1, 4, 27, 256, 3125, 46656, 823543, 16777208, 387419832, 9999962640, 285309793890, 8916009869448, 302870744070180, 11111793078586200, 437883125030581230, 18446183535139520160, 827209994815650320160, 39344710668752223656064, 1978320731100920186439888
Offset: 0

Views

Author

Benjamin Otto, Mar 25 2019

Keywords

Comments

A preimage constraint is a set of nonnegative integers such that the size of the inverse image of any element is one of the values in that set.
Thus, the n-th term of the sequence is the number of endofunctions on a set of size n such that each preimage has at most 7 elements. Equivalently, it is the number of n-letter words from an n-letter alphabet such that no letter appears more than 7 times.

Crossrefs

Column k=7 of A306800; see that entry for sequences related to other preimage constraints constructions.

Programs

  • Maple
    b:= proc(n, i) option remember; `if`(n=0 and i=0, 1, `if`(i<1, 0,
          add(b(n-j, i-1)*binomial(n, j), j=0..min(7, n))))
        end:
    a:= n-> b(n$2):
    seq(a(n), n=0..20);  # Alois P. Heinz, Apr 05 2019
  • Mathematica
    b[n_, i_] := b[n, i] = If[n == 0 && i == 0, 1, If[i<1, 0, Sum[b[n-j, i-1]* Binomial[n, j], {j, 0, Min[7, n]}]]];
    a[n_] := b[n, n];
    a /@ Range[0, 20] (* Jean-François Alcover, Feb 29 2020, after Alois P. Heinz *)
  • Python
    # print first num_entries entries in the sequence
    import math, sympy; x=sympy.symbols('x')
    k=7; num_entries = 64
    P=range(k+1); eP=sum([x**d/math.factorial(d) for d in P]); r = [1]; curr_pow = 1
    for term in range(1,num_entries):
        curr_pow=(curr_pow*eP).expand()
        r.append(curr_pow.coeff(x**term)*math.factorial(term))
    print(r)

Formula

a(n) = n! * [x^n] e_7(x)^n, where e_k(x) is the truncated exponential 1 + x+ x^2/2! + ... + x^k/k!. The link above yields explicit constants c_k, r_k so that the columns are asymptotically c_7 * n^(-1/2) * r_7^-n.