Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).
%I #51 Apr 10 2020 07:56:24
%S 0,1,3,2,6,7,4,5,12,13,14,15,8,9,10,11,24,25,26,27,28,29,30,31,16,17,
%T 18,19,20,21,22,23,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,32,
%U 33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,96,97,98,99,100,101,102
%N Write n in binary and complement second bit (from the left), with a(0)=0 and a(1)=1.
%C From _Yosu Yurramendi_, Mar 21 2017: (Start)
%C This sequence is a self-inverse permutation of the integers. Except for fixed points 0, 1, it consists completely of 2-cycles: (2^(m+1)+k, 2^(m+1)+2^m+k), m >= 0, 0 <= k < 2^m.
%C A071766(a(n)) = A229742(n), A229742(a(n)) = A071766(n), n > 0.
%C A245325(a(n)) = A245326(n), A245326(a(n)) = A245325(n), n > 0.
%C A065190(a(n)) = a(A065190(n)), n > 0.
%C A054429(a(n)) = a(A054429(n)) = A117120(n), n > 0.
%C A258746(a(n)) = a(A258746(n)), n > 0.
%C A258996(a(n)) = a(A258996(n)), n > 0. (End)
%C A324337(a(n)) = A324338(n), A324338(a(n)) = A324337(n), n > 0. - _Yosu Yurramendi_, Nov 04 2019
%H Yosu Yurramendi, <a href="/A063946/b063946.txt">Table of n, a(n) for n = 0..32767</a>
%F If 2*2^k <= n < 3*2^k then a(n) = n + 2^k; if 3*2^k <= n < 4*2^k then a(n) = n - 2^k.
%F a(0)=0, a(1)=1, a(2)=3, a(3) = 2, a(2n) = 2*a(n), a(2n+1) = 2*a(n) + 1. - _Ralf Stephan_, Aug 23 2003
%e a(11)=15 since 11 is written in binary as 1011, which changes to 1111, i.e., 15; a(12)=8 since 12 is written as 1100 which changes to 1000, i.e., 8.
%p a:= proc(n) option remember;
%p if n<2 then n
%p elif n<4 then 5-n
%p elif `mod`(n,2)=0 then 2*a(n/2)
%p else 2*a((n-1)/2) + 1
%p fi; end proc;
%p seq(a(n), n = 0..80); # _G. C. Greubel_, Dec 08 2019
%t bc[n_]:=Module[{idn2=IntegerDigits[n,2]},If[idn2[[2]]==1,idn2[[2]]=0, idn2[[2]]=1];FromDigits[idn2,2]]; Join[{0,1},Array[bc,80,2]] (* _Harvey P. Dale_, May 31 2012 *)
%t a[n_]:= a[n]= If[n<2, n, If[n<4, 5-n, If[EvenQ[n], 2*a[n/2], 2*a[(n-1)/2] +1]]]; Table[a[n], {n,0,80}] (* _G. C. Greubel_, Dec 08 2019 *)
%o (PARI) a(n)=if(n<2,n>0,3/2*2^floor(log(n)/log(2))-2^floor(log(4/3*n)/log(2))+n) /* _Ralf Stephan_ */
%o (PARI) a(n) = if(n<2,n, bitxor(n, 1<<(logint(n,2)-1))); \\ _Kevin Ryde_, Apr 09 2020
%o (Python)
%o import math
%o def a(n): return n if n<2 else 3/2*2**int(math.floor(math.log(n)/math.log(2))) - 2**int(math.floor(math.log(4/3*n)/math.log(2))) + n # _Indranil Ghosh_, Mar 22 2017
%o (R)
%o maxrow <- 8 # by choice
%o b01 <- 1
%o for(m in 0:(maxrow-1)){
%o b01 <- c(b01,rep(0,2^(m+1))); b01[2^(m+1):(2^(m+1)+2^m-1)] <- 1
%o }
%o a <- c(1,3,2)
%o for(m in 0:(maxrow-2))
%o for(k in 0:(2^m-1)){
%o a[2^(m+2) + k] <- a[2^(m+1) + 2^m + k] + 2^((m+1) + b01[2^(m+2) + k])
%o a[2^(m+2) + + 2^m + k] <- a[2^(m+1) + k] + 2^((m+1) + b01[2^(m+2) + + 2^m + k])
%o a[2^(m+2) + 2^(m+1) + k] <- a[2^(m+1) + 2^m + k] + 2^((m+1) + b01[2^(m+2) + 2^(m+1) + k])
%o a[2^(m+2) + 2^(m+1) + 2^m + k] <- a[2^(m+1) + k] + 2^((m+1) + b01[2^(m+2) + 2^(m+1) + 2^m + k])
%o }
%o (a <- c(0,a)) # _Yosu Yurramendi_, Mar 30 2017
%o (R)
%o a <- c(1,3,2)
%o maxn <- 63 # by choice
%o for(n in 2:maxn){ a[2*n ] <- 2*a[n]
%o a[2*n+1] <- 2*a[n] + 1 }
%o (a <- c(0,a)) # _Yosu Yurramendi_, Nov 12 2019
%o (Sage)
%o @CachedFunction
%o def a(n):
%o if (n<2): return n
%o elif (n<4): return 5-n
%o elif (mod(n,2)==0): return 2*a(n/2)
%o else: return 2*a((n-1)/2) + 1
%o [a(n) for n in (0..80)] # _G. C. Greubel_, Dec 08 2019
%Y Cf. A004442, A053645, A054429.
%K easy,nonn,base
%O 0,3
%A _Henry Bottomley_, Sep 03 2001