login
The OEIS Foundation is supported by donations from users of the OEIS and by a grant from the Simons Foundation.

 

Logo


Hints
(Greetings from The On-Line Encyclopedia of Integer Sequences!)
A180238 a(n) counts the distinct billiard words with length n on alphabet of 3 symbols. 4
1, 3, 9, 27, 75, 189, 447, 951, 1911, 3621, 6513, 11103, 18267, 29013, 44691, 67251, 98547, 140865, 197679, 272799, 370659, 497403, 658371, 859863, 1110453, 1420527, 1799373, 2260161, 2815401, 3479235, 4269279 (list; graph; refs; listen; history; text; internal format)
OFFSET

0,2

COMMENTS

Computation: Allan C. Wechsler for n <= 5 (manual), Fred Lunnon for n <= 8 (Maple), Michael Kleber for n <= 30 (Mathematica).

LINKS

Table of n, a(n) for n=0..30.

N. Bedaride, Classification of rotations on the torus T^2, Theoretical Computer Science, 385 (2007), 214-225.

J.-P. Borel, A geometrical Characterization of factors of multidimensional Billiards words and some Applications, Theoretical Computer Science, 380 (2007) 286-303.

L. Vuillon, Balanced Words, Bull. Belg. Math. Soc., 10 (2003), 787-805.

FORMULA

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

EXAMPLE

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

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.

MATHEMATICA

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

(* Program due to Michael Kleber, Aug 2010 *)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

shuf[0] := {""}

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

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

(* Typical session *)

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

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

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

CROSSREFS

See A005598 for 2 symbols, A180239 for 4 symbols.

Sequence in context: A084707 A193703 A289658 * A289693 A269684 A330079

Adjacent sequences:  A180235 A180236 A180237 * A180239 A180240 A180241

KEYWORD

nonn

AUTHOR

Fred Lunnon, Aug 18 2010

STATUS

approved

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

License Agreements, Terms of Use, Privacy Policy. .

Last modified September 27 18:40 EDT 2020. Contains 337386 sequences. (Running on oeis4.)