OFFSET
0,2
COMMENTS
All terms are numbers with no two adjacent zeros in binary representation, cf. A003754;
a(odd) = even and a(even) = odd;
LINKS
FORMULA
n = Sum_{i=0..1} b(i)*2^i with 0 <= b(i) <= 1, L >= 0, then a(n) = h(0,L) with h(v,i) = if i > L then v, otherwise h((2*v+1)*(b(i)+1),i-1).
From Jeffrey Shallit, Oct 28 2021: (Start)
a(n) satisfies the recurrences:
a(2n+1) = 2*a(2n)
a(4n) = -2*a(n) + 3*a(2n)
a(8n+2) = -8*a(n) + 8*a(2n) + a(4n+2)
a(8n+6) = -4*a(2n) + 5*a(4n+2)
which shows that a(n) is a 2-regular sequence. (End)
EXAMPLE
n = 7 -> 111 -> 101010 -> a(7) = 42;
n = 8 -> 1000 -> 10111 -> a(8) = 23;
n = 9 -> 1001 -> 101110 -> a(9) = 46;
n = 10 -> 1010 -> 101101 -> a(10) = 45;
n = 11 -> 1011 -> 1011010 -> a(11) = 90;
n = 12 -> 1100 -> 101011 -> a(12) = 43.
MATHEMATICA
Table[FromDigits[Flatten[IntegerDigits[n, 2]/.{{0->1, 1->{1, 0}}}], 2], {n, 0, 120}] (* Harvey P. Dale, Dec 12 2017 *)
PROG
(Haskell)
import Data.List (unfoldr)
a196168 0 = 1
a196168 n = foldl (\v b -> (2 * v + 1)*(b + 1)) 0 $ reverse $ unfoldr
(\x -> if x == 0 then Nothing else Just $ swap $ divMod x 2) n
where r v b = (2 * v + 1)*(b+1)
(Python)
def a(n):
b = bin(n)[2:]
return int(b.replace('1', 't').replace('0', '1').replace('t', '10'), 2)
print([a(n) for n in range(56)]) # Michael S. Branicky, Oct 28 2021
CROSSREFS
KEYWORD
nonn
AUTHOR
Reinhard Zumkeller, Oct 28 2011
STATUS
approved