A293742 Number of sets of nonempty words with a total of n letters over ternary alphabet such that within each prefix of a word every letter of the alphabet is at least as frequent as the subsequent alphabet letter.
1, 1, 2, 6, 14, 39, 104, 284, 775, 2145, 5941, 16563, 46329, 130100, 366432, 1035191, 2931797, 8323290, 23680142, 67505721, 192791938, 551537506, 1580315319, 4534715008, 13030197881, 37489497472, 107991978290, 311433926717, 899093131819, 2598257241179
Offset: 0
Keywords
Links
- Alois P. Heinz, Table of n, a(n) for n = 0..1000
Programs
-
Maple
g:= proc(n) option remember; `if`(n<2, 1, g(n-1)+add(g(k)*g(n-k-2), k=0..n-2)) end: b:= proc(n, i) option remember; `if`(n=0, 1, `if`(i<1, 0, add(b(n-i*j, i-1)*binomial(g(i), j), j=0..n/i))) end: a:= n-> b(n$2): seq(a(n), n=0..35);
-
Mathematica
With[{n = 29}, CoefficientList[Series[Product[(1 + x^j)^Hypergeometric2F1[(1 - j)/2, -j/2, 2, 4], {j, n}], {x, 0, n}], x]] (* Michael De Vlieger, Oct 15 2017, after Peter Luschny at A001006 *)
-
Python
from sympy.core.cache import cacheit from sympy import binomial @cacheit def g(n): return 1 if n<2 else g(n - 1) + sum(g(k)*g(n - k - 2) for k in range(n - 1)) @cacheit def b(n, i): return 1 if n==0 else 0 if i<1 else sum(b(n - i*j, i - 1)*binomial(g(i), j) for j in range(n//i + 1)) def a(n): return b(n, n) print([a(n) for n in range(36)]) # Indranil Ghosh, Oct 15 2017
Formula
G.f.: Product_{j>=1} (1+x^j)^A001006(j).