|
|
A204340
|
|
The number of words of length n created with the letters a,b,c with at least as many a's as b's and at least as many b's as c's and no adjacent letters forming the pattern bba.
|
|
1
|
|
|
1, 1, 3, 10, 21, 57, 182, 426, 1167, 3679, 8991, 24873, 77492, 194449, 541194, 1670783, 4267991, 11926782, 36559601, 94604822, 265135713, 808106960, 2111760491, 5931204471, 17993213402, 47385794268, 133315710843, 402849979395, 1067608305030, 3007697623335
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
0,3
|
|
LINKS
|
|
|
EXAMPLE
|
For n=1 the a(1)=1 solution is: a
For n=2 the a(2)=3 solutions are: aa,ab,ba
For n=3 the a(3)=10 solutions are: aaa,aab,aba,abc,acb,baa,bac,bca,cab,cba
|
|
MAPLE
|
makebbaavoiders := proc (n) local out, tout, i;
if n = 0 then return [[]] end if;
tout := makebbaavoiders(n-1);
out := [];
for i to nops(tout) do
if 2 <= nops(tout[i]) and tout[i][-1] = 1 and tout[i][-2] = 1 then
out := [op(out), [op(tout[i]), 1], [op(tout[i]), 2]]
else
out := [op(out), [op(tout[i]), 0], [op(tout[i]), 1], [op(tout[i]), 2]]
end if end do;
return out;
end proc;
count := proc (lst, val)
return nops(select(proc (x) options operator, arrow; x = val end proc, lst))
end proc;
nops(select(proc (w) options operator, arrow; count(w, 2) <= count(w, 1) end proc, select(proc (w) options operator, arrow; count(w, 1) <=count(w, 0) end proc, makebbaavoiders(7))));
# second Maple program:
a:= n-> add(add(add(w(na, nb, n-na-nb, t), t=0..2),
nb=ceil((n-na)/2)..na), na=ceil(n/3)..n):
w:= proc(a, b, c, t) option remember;
`if`(a=0 and b=0 and c=0, `if`(t=0, 1, 0),
`if`(a<0 or b<0 or c<0, 0, `if`(t=0, w(a-1, b, c, 0)+
w(a-1, b, c, 1) +w(a, b, c-1, 0) +w(a, b, c-1, 1)+
w(a, b, c-1, 2), `if`(t=1, w(a, b-1, c, 0),
w(a, b-1, c, 1) +w(a, b-1, c, 2)))))
end:
|
|
MATHEMATICA
|
a[n_] := Sum[Sum[Sum[w[na, nb, n-na-nb, t], {t, 0, 2}], {nb, Ceiling[(n-na)/2], na}], {na, Ceiling[n/3], n}];
w[a_, b_, c_, t_] := w[a, b, c, t] =
If[a == 0 && b == 0 && c == 0, If[t == 0, 1, 0],
If[a < 0 || b < 0 || c < 0, 0, If[t == 0, w[a - 1, b, c, 0] +
w[a - 1, b, c, 1] + w[a, b, c - 1, 0] + w[a, b, c - 1, 1] +
w[a, b, c - 1, 2], If[t == 1, w[a, b - 1, c, 0],
w[a, b - 1, c, 1] + w[a, b - 1, c, 2]]]]];
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn
|
|
AUTHOR
|
|
|
EXTENSIONS
|
a(0) inserted and extended beyond a(14) by Alois P. Heinz, May 07 2012
|
|
STATUS
|
approved
|
|
|
|