%I #46 Mar 02 2021 13:42:02
%S 1,2,3,1,1,2,1,2,3,1,2,3,1,1,2,3,1,1,2,1,2,3,1,1,2,1,2,3,1,2,3,1,1,2,
%T 1,2,3,1,2,3,1,1,2,3,1,1,2,1,2,3,1,2,3,1,1,2,3,1,1,2,1,2,3,1,1,2,1,2,
%U 3,1,2,3,1,1,2,3,1,1,2,1,2,3,1,1,2,1,2,3,1,2,3,1,1,2,1,2,3,1,2
%N Trajectory of 1 under the morphism 1 -> 12, 2 -> 3, 3 -> 1.
%H Aresh Pourkavoos, <a href="/A105083/b105083.txt">Table of n, a(n) for n = 0..10000</a>
%H P. Arnoux and E. Harriss, <a href="http://www.ams.org/notices/201407/rnoti-p768.pdf">What is a Rauzy Fractal?</a>, Notices Amer. Math. Soc., 61 (No. 7, 2014), 768-770, also p. 704 and front cover.
%H Marcy Barge and Jaroslaw Kwapisz, <a href="http://www.jstor.org/stable/40068030">Geometric theory of unimodular Pisot substitutions</a>, Amer. J. Math. 128 (2006), no. 5, 1219--1282. MR2262174 (2007m:37039). See Fig. 18.1. - _N. J. A. Sloane_, Aug 06 2014
%H Victor F. Sirvent and Yang Wang, <a href="http://dx.doi.org/10.2140/pjm.2002.206.465">Self-Affine Tiling via Substitution Dynamical Systems and Rauzy Fractals</a>, Pac. J. Math., 206 (2002), 465-485. See Example 2.2 and Figure 2 pp. 474-475.
%H <a href="/index/Fi#FIXEDPOINTS">Index entries for sequences that are fixed points of mappings</a>
%F From _Aresh Pourkavoos_, Jan 26 2021: (Start)
%F Limit S(infinity) of the following strings: S(0) = 2, S(1) = 1, S(2) = 0, S(n+3) = S(n+2)S(n). S(n) has length A000930(n).
%F Individual terms of a(n) may also be found by greedily writing n as a sum of entries of A000930. a(n) is 2 if the smallest term is 1, 3 if the smallest term is 2, and 1 otherwise.
%F (End)
%t Nest[ Function[ l, {Flatten[(l /. {1 -> {1, 2}, 2 -> {3}, 3 -> {1}})] }], {1}, 12]
%o (Python)
%o N_TERMS=10000
%o def a():
%o # Index of the current term
%o n = 0
%o # Stores the place values of the greedy representation of n,
%o # minus two since A000930 begins with duplicate ones.
%o places = []
%o # Edge case: a(0)=1.
%o yield 0, 1
%o while True:
%o n += 1
%o # Add A000930(2+0)=1 to the representation of n
%o places.append(0)
%o # Apply carryover rule for as long as necessary:
%o # if places contains n+2 and n,
%o # both terms are replaced by n+3.
%o while len(places) > 1 and places[-2] <= places[-1]+2:
%o places.pop()
%o places[-1] += 1
%o # Look at the smallest term to decide a(n)
%o an = 1 if places[-1] > 1 else places[-1]+2
%o yield n, an
%o # Asymptotic behavior is O(log(n)*log(log(n))) memory
%o # and O(n) time to generate the first n terms,
%o # although a term may take as long as O(log(n)).
%o for n, an in a():
%o print(n, an)
%o if (n >= N_TERMS):
%o break
%o # _Aresh Pourkavoos_, Jan 26 2021
%Y Cf. A073058, A092782, A245553, A245554, A000390.
%K nonn
%O 0,2
%A _Roger L. Bagula_, Apr 06 2005
%E Edited by _N. J. A. Sloane_, Oct 10 2007 and Aug 03 2014