%I #43 Mar 30 2021 01:33:09
%S 0,0,1,0,1,1,2,0,1,1,3,1,2,2,3,0,1,1,4,1,3,3,5,1,2,2,5,2,3,3,4,0,1,1,
%T 5,1,4,4,7,1,3,3,8,3,5,5,7,1,2,2,7,2,5,5,8,2,3,3,7,3,4,4,5,0,1,1,6,1,
%U 5,5,9,1,4,4,11,4,7,7,10,1,3,3,11,3,8,8
%N L-fusc, sequence l of the mutual diatomic recurrence pair: l(1)=0, r(1)=1, l(2n) = l(n), r(2n) = r(n), l(2n+1) = l(n)+r(n), r(2n+1) = l(n+1)+r(n+1), where r(n) = A288003(n).
%C Define a sequence chf(n) of Christoffel words over an alphabet {-,+}:
%C chf(1) = '-',
%C chf(2*n+0) = negate(chf(n)),
%C chf(2*n+1) = negate(concatenate(chf(n),chf(n+1))).
%C Each chf(n) word has the length fusc(n) = A002487(n) and splits uniquely into two parent Christoffel words - the left Christoffel word lef(n) of the length l-fusc(n) = a(n) and the right Christoffel word rig(n) of the length r-fusc(n) = A288003(n). See the example below.
%F a(n) = A002487(n) - A288003(n). [l-fusc(n) = fusc(n) - r-fusc(n).]
%F gcd(a(n),A288003(n)) = gcd(a(n),A002487(n)) = 1.
%F a(n) = A007306(n) - A287896(n).
%F a(n) = A007306(n) mod A002487(n).
%e The odd bisection CHF(n) of the chf(n) sequence shifted rightwards by a(n) determines the longest overlap of the adjacent CHF words. Note that the first overlapping letters differ for n == 2^k or equivalently when a(n)==0.
%e To construct the word CHF(n+1) from the word CHF(n): cut off the word negate(lef(n)) of length a(n) at the left side of CHF(n), add the word negate(rig(n)) of length A288003(n) at the right side of CHF(n) and negate the first letter of the new word iff a(n)==0.
%e n chf(n) A070939(n) A002487(n) lef(n) a(n) CHF(n)
%e fusc(n) l-fusc(n) bisection of chf(n)
%e 1 '-' 1 1 '' 0 '-'
%e 2 '+' 2 1 '' 0 '+-'
%e 3 '+-' 2 2 '+' 1 '--+'
%e 4 '-' 3 1 '' 0 '-++'
%e 5 '--+' 3 3 '-' 1 '+++-'
%e 6 '-+' 3 2 '-' 1 '++-+-'
%e 7 '-++' 3 3 '-+' 2 '+-+--'
%e 8 '+' 4 1 '' 0 '+---'
%e 9 '+++-' 4 4 '+' 1 '----+'
%e 10 '++-' 4 3 '+' 1 '---+--+'
%e 11 '++-+-' 4 5 '++-' 3 '--+--+-+'
%e 12 '+-' 4 2 '+' 1 '--+-+-+'
%e 13 '+-+--' 4 5 '+-' 2 '-+-+-++'
%e 14 '+--' 4 3 '+-' 2 '-+-++-++'
%e 15 '+---' 4 4 '+--' 3 '-++-+++'
%e 16 '-' 5 1 '' 0 '-++++'
%e 17 '----+' 5 5 '-' 1 '+++++-'
%o (Python)
%o def l(n): return 0 if n==1 else l(n//2) if n%2==0 else l((n - 1)//2) + r((n - 1)//2)
%o def r(n): return 1 if n==1 else r(n//2) if n%2==0 else l((n + 1)//2) + r((n + 1)//2)
%o print([l(n) for n in range(1, 151)]) # _Indranil Ghosh_, Jun 11 2017
%Y Cf. A002487, A070939, A287729, A287730, A288003.
%K nonn
%O 1,7
%A _I. V. Serov_, Jun 10 2017
|