login
A367307
Reverse bits in blocks in binary expansion of n where blocks are separated by every second 1 bit starting from the most significant 1 bit as the first separator.
3
0, 1, 2, 3, 4, 6, 5, 7, 8, 12, 10, 13, 9, 11, 14, 15, 16, 24, 20, 25, 18, 21, 26, 27, 17, 19, 22, 23, 28, 30, 29, 31, 32, 48, 40, 49, 36, 41, 50, 51, 34, 37, 42, 43, 52, 54, 53, 55, 33, 35, 38, 39, 44, 46, 45, 47, 56, 60, 58, 61, 57, 59, 62, 63, 64, 96, 80, 97
OFFSET
0,3
COMMENTS
Self-inverse permutation of nonnegative integers.
FORMULA
a(n) = b(c(f(n)) + g(n)) = b(h(c(n))) for n > 0 with a(0) = 0 where
b(n) = b(f(h(n))) + g(n) for n > 0 with b(0) = 0,
c(n) = h(c(f(n)) + g(n)) for n > 0 with c(0) = 0,
f(n) = A053645(n), g(n) = A053644(n) and where h(n) = A059893(n).
Note that c (A333776) is the inverse permutation to b (A333777).
a(n) < 2^k iff n < 2^k for k >= 0.
EXAMPLE
For n = 100930, reversals are each (...) block
n = 100930 = binary 1(1000)1(0100)1(000010)
a(n) = 72016 = binary 1(0001)1(0010)1(010000)
PROG
(PARI) a(n) = my(v1); v1 = binary(n); my(A = 1); while(A <= #v1, my(B = A, C = 0, D); A++; while(A <= #v1, C += v1[A]; if(v1[A] && (C == 1), D = A); if(C < 2, A++, break)); if(C > 0, v1[D] = 0; v1[A + B - D] = 1)); fromdigits(v1, 2)
CROSSREFS
KEYWORD
nonn,base,easy
AUTHOR
Mikhail Kurkov, Nov 13 2023
STATUS
approved