A322463 Reverse runs of zeros in binary expansion of n and convert back to decimal.
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 19, 18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 40, 35, 36, 41, 44, 39, 34, 37, 42, 43, 38, 45, 46, 47, 48, 49, 52, 51, 50, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 80, 67
Offset: 0
Examples
For n = 150: - the binary representation of 150 is "10010110", - we have three runs of zeros: "00", "0" and "0", - we exchange the first and the third run, and the second remains in place, - we obtain: "10101100", - hence a(150) = 172.
Links
- Rémy Sigrist, Table of n, a(n) for n = 0..8192
- Rémy Sigrist, Colored scatterplot of (n, a(n)) for n = 0..2^18-1 (where the color is function of A005811(n))
- Index entries for sequences related to binary expansion of n
- Index entries for sequences that are permutations of the natural numbers
Crossrefs
Programs
-
Mathematica
a[n_] := Module[{s=Split[IntegerDigits[n,2]]}, m=Length[s]; m2=m-Mod[m,2]; If[m2>0, ind=Riffle[Range[1,m,2],Range[m2,1,-2]]; FromDigits[Flatten[s[[ind]]],2],n]]; Array[a, 100, 0] (* Amiram Eldar, Dec 12 2018 *)
-
PARI
a(n) = { my (r=n, z=[], v=0, p=1, i=0); while (r, my (l=valuation(r+(r%2),2)); if (r%2==0, z=concat(l,z)); r\=2^l); while (n, my (l=valuation(n+(n%2),2)); if (n%2, v+=(2^l-1)*p; p*=2^l, p*=2^z[i++]); n\=2^l); return (v); }
Comments