%I
%S 0,1,0,0,1,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,
%T 1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,
%U 0,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1
%N Limitreverse of the ThueMorse sequence (A010060), with first term as initial block.
%C Suppose S = (s(0),s(1),s(2),...) is an infinite sequence such that every finite block of consecutive terms occurs infinitely many times in S. (It is assumed that A014675 is such a sequence.) Let B = B(m,k) = (s(mk),s(mk+1),...,s(m)) be such a block, where m >= 0 and k >= 0. Let m(1) be the least i > m such that (s(ik),s(ik+1),...,s(i)) = B(m,k), and put B(m(1),k+1) = (s(m(1)k1),s(m(1)k),...,s(m(1))). Let m(2) be the least i > m(1) such that (s(ik1),s(ik),...,s(i)) = B(m(1),k+1), and put B(m(2),k+2) = (s(m(2)k2),s(m(2)k1),...,s(m(2))). Continuing in this manner gives a sequence of blocks B(m(n),k+n). Let B'(n) = reverse(B(m(n),k+n)), so that for n >= 1, B'(n) comes from B'(n1) by suffixing a single term; thus the limit of B'(n) is defined; we call it the "limitreverse of S with initial block B(m,k)", denoted by S*(m,k), or simply S*.
%C ...
%C The sequence (m(i)), where m(0) = 0, is the "index sequence for limitreversing S with initial block B(m,k)" or simply the index sequence for S*, as in A245939.
%e S = A010060 (reindexed to start with s(0) = 1, with B = (s(0)); that is, (m,k) = (0,0); S = (0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, ...)
%e B'(0) = (0)
%e B'(1) = (0,1)
%e B'(2) = (0,1,0)
%e B'(3) = (0,1,0,0)
%e B'(4) = (0,1,0,0,1)
%e B'(5) = (0,1,0,0,1,1)
%e S* = (0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1,...),
%e with index sequence (0,3,5,12,20,36,60,92,108,132,...)
%t z = 20; seqPosition2[list_, seqtofind_] := Last[Last[Position[Partition[list, Length[#], 1], Flatten[{___, #, ___}], 1, 2]]] &[seqtofind]; Print["ThueMorse sequence, to be limitreversed: 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1,..."]
%t n = 10; s = Nest[Flatten[# /. {0 > {0, 1}, 1 > {1, 0}}] &, {0}, n];
%t ans = Join[{s[[p[0] = pos = seqPosition2[s, #]  1]]}, #] &[{s[[1]]}]; cfs = Table[s = Drop[s, pos  1]; ans = Join[{s[[p[n] = pos = seqPosition2[s, #]  1]]}, #] &[ans], {n, z}];
%t Print["Before reversing:"]
%t cfs
%t Print["After reversing:"]
%t Column[Map[Reverse, cfs]]
%t Print["Positions where previous block repeats:"]
%t q = Accumulate[Join[{1}, Table[p[n], {n, 0, z}]]] (* A245937 *)
%Y Cf. A010060, A245939, A245920.
%K nonn
%O 0
%A _Clark Kimberling_ and _Peter J. C. Moses_, Aug 07 2014
