login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

A324804
a(n) is the number of endofunctions on a set of size n with preimage constraint {0, 1, 2, 3, 4}.
2
1, 1, 4, 27, 256, 3120, 46470, 817950, 16612120, 382367160, 9836517600, 279684716850, 8709747354000, 294818964039600, 10777792243818600, 423193629950091000, 17762853608696196000, 793668469023770340000, 37611450798744238416000, 1884235285123539720372000
OFFSET
0,3
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 4 elements. Equivalently, it is the number of n-letter words from an n-letter alphabet such that no letter appears more than 4 times.
LINKS
Alois P. Heinz, Table of n, a(n) for n = 0..386 (first 64 terms from Benjamin Otto)
B. Otto, Coalescence under Preimage Constraints, arXiv:1903.00542 [math.CO], 2019, Corollaries 5.6 and 7.8.
FORMULA
a(n) = n! * [x^n] e_4(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_4 * n^(-1/2) * r_4^-n.
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(4, n))))
end:
a:= n-> b(n$2):
seq(a(n), n=0..21); # Alois P. Heinz, Apr 01 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[4, n]}]]];
a[n_] := b[n, n];
Table[a[n], {n, 0, 21}] (* Jean-François Alcover, May 31 2019, after Alois P. Heinz *)
PROG
(Python) # print first num_entries entries in the sequence import math, sympy; x=sympy.symbols('x') k=4; 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)
CROSSREFS
Column k=4 of A306800; see that entry for sequences related to other preimage constraints constructions.
Sequence in context: A239490 A239491 A365095 * A245409 A190125 A324805
KEYWORD
easy,nonn
AUTHOR
Benjamin Otto, Mar 15 2019
STATUS
approved