|
|
A293741
|
|
Number of sets of nonempty words with a total of n letters over binary alphabet such that within each prefix of a word every letter of the alphabet is at least as frequent as the subsequent alphabet letter.
|
|
5
|
|
|
1, 1, 2, 5, 10, 23, 51, 111, 243, 530, 1156, 2497, 5421, 11662, 25179, 53991, 116035, 248025, 531045, 1131943, 2415495, 5135914, 10927905, 23182313, 49199819, 104154950, 220543471, 465997148, 984704560, 2076988713, 4380764650, 9225209928, 19424814305
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
0,3
|
|
LINKS
|
|
|
FORMULA
|
G.f.: Product_{j>=1} (1+x^j)^A001405(j).
|
|
MAPLE
|
b:= proc(n, i) option remember; `if`(n=0, 1, `if`(i<1, 0, add(
b(n-i*j, i-1)*binomial(binomial(i, floor(i/2)), j), j=0..n/i)))
end:
a:= n-> b(n$2):
seq(a(n), n=0..35);
|
|
MATHEMATICA
|
b[n_, i_] := b[n, i] = If[n == 0, 1, If[i < 1, 0, Sum[b[n - i*j, i - 1]* Binomial[Binomial[i, Floor[i/2]], j], {j, 0, n/i}]]];
a[n_] := b[n, n];
|
|
PROG
|
(Python)
from sympy.core.cache import cacheit
from sympy import binomial
@cacheit
def b(n, i): return 1 if n==0 else 0 if i<1 else sum([b(n - i*j, i - 1)*binomial(binomial(i, i//2), j) for j in range(n//i + 1)])
def a(n): return b(n, n)
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|