login
The OEIS is supported by the many generous donors to the OEIS Foundation.

 

Logo
Hints
(Greetings from The On-Line Encyclopedia of Integer Sequences!)
A180238 a(n) is the number of distinct billiard words with length n on an alphabet of 3 symbols. 4

%I #22 Jan 16 2024 17:33:35

%S 1,3,9,27,75,189,447,951,1911,3621,6513,11103,18267,29013,44691,67251,

%T 98547,140865,197679,272799,370659,497403,658371,859863,1110453,

%U 1420527,1799373,2260161,2815401,3479235,4269279

%N a(n) is the number of distinct billiard words with length n on an alphabet of 3 symbols.

%C Computation: _Allan C. Wechsler_ for n <= 5 (manual), _Fred Lunnon_ for n <= 8 (Maple), _Michael Kleber_ for n <= 30 (Mathematica).

%H N. Bedaride, <a href="http://dx.doi.org/10.1016/j.tcs.2007.05.037">Classification of rotations on the torus T^2</a>, Theoretical Computer Science, 385 (2007), 214-225.

%H J.-P. Borel, <a href="http://dx.doi.org/10.1016/j.tcs.2007.03.020">A geometrical Characterization of factors of multidimensional Billiards words and some Applications</a>, Theoretical Computer Science, 380 (2007) 286-303.

%H L. Vuillon, <a href="http://projecteuclid.org/euclid.bbms/1074791332">Balanced Words</a>, Bull. Belg. Math. Soc., 10 (2003), 787-805.

%F Computation may be expedited by generating only words in which the symbols occur in increasing alphabetic order: this was done in the production version.

%e For n = 5 there are a(5) = 189 words, permutations on the alphabet {1,2,3} of the 32 words

%e 11111, 11112, 11121, 11123, 11211, 11212, 11213, 11231, 12111, 12112, 12113, 12121, 12122, 12123, 12131, 12132, 12212, 12213, 12221, 12222, 12223, 12231, 12232, 12311, 12312, 12313, 12321, 12322, 12323, 12331, 12332, 12333.

%t (* Number of ways to interleave N elements from 3 arithmetic seqs *)

%t (* Program due to _Michael Kleber_, Aug 2010 *)

%t (* Given a string like "ABCABA", produce a set of inequalities *)

%t (* about the three arithmetic progressions giving successive A/B/Cs *)

%t (* The N-th occurrence (1-indexed) of character X corresponds to the value *)

%t (* BASE[X] + N * DELTA[X] *)

%t (* In all functions, seq is eg {"A", "B", "C", "A", "B", "A"} *)

%t (* The arithmetic-progression value of the i-th element of seq *)

%t value[seq_, i_] := BASE[seq[[i]]] + DELTA[seq[[i]]] * numoccur[seq,i]

%t numoccur[seq_, i_] := Count[Take[seq,If[i>0,i,Length[seq]+i+1]],seq[[i]]]

%t (* First element of the seq is greater than anything that would precede it*)

%t lowerbound[seq_] := (BASE[ # ] < value[seq,1])& /@ Union[seq]

%t (* Each element of the seq is greater than the previous one *)

%t upperbound[seq_] := (value[seq,-1] < value[Append[seq,# ],-1])& /@ Union[seq]

%t (* Last element of the seq is less than anything that would follow it *)

%t ordering[seq_] := Table[value[seq,i] < value[seq,i+1], {i,Length[seq]-1}]

%t ineqs[seq_] := Join[ lowerbound[seq], ordering[seq], upperbound[seq] ]

%t vars[seq_] := Join @@ ({BASE[ # ],DELTA[ # ]}& /@ Union[seq])

%t witness[seq_] := FindInstance[ ineqs[seq], vars[seq] ]

%t witness[s_String] := witness[Characters[s]]

%t (* All obtainable length-n shuffles of three arithmetic seqs: *)

%t names = {"A", "B", "C"}

%t shuf[0] := {""}

%t candidates[n_] := Flatten[Table[ob<>ch, {ob,shuf[n-1]}, {ch, names}]]

%t shuf[n_] := shuf[n] = Select[ candidates[n], witness[ # ] != {}& ]

%t (* Typical session *)

%t In[18]:= Table[Length[shuf[i]],{i,0,12}]

%t Out[18]= {1, 3, 9, 27, 75, 189, 447, 951, 1911, 3621, 6513, 11103, 18267}

%t In[19]:= TimeUsed[]/60 Out[19]= 6.73642

%Y See A005598 for 2 symbols, A180239 for 4 symbols.

%K nonn,more

%O 0,2

%A _Fred Lunnon_, Aug 18 2010

Lookup | Welcome | Wiki | Register | Music | Plot 2 | Demos | Index | Browse | More | WebCam
Contribute new seq. or comment | Format | Style Sheet | Transforms | Superseeker | Recents
The OEIS Community | Maintained by The OEIS Foundation Inc.

License Agreements, Terms of Use, Privacy Policy. .

Last modified April 23 16:40 EDT 2024. Contains 371916 sequences. (Running on oeis4.)