login
BCR(n): write in binary, complement, reverse.
29

%I #86 Nov 03 2023 11:17:33

%S 1,0,2,0,6,2,4,0,14,6,10,2,12,4,8,0,30,14,22,6,26,10,18,2,28,12,20,4,

%T 24,8,16,0,62,30,46,14,54,22,38,6,58,26,42,10,50,18,34,2,60,28,44,12,

%U 52,20,36,4,56,24,40,8,48,16,32,0,126,62,94,30,110,46,78,14,118,54,86

%N BCR(n): write in binary, complement, reverse.

%C a(0) could be considered to be 0 if the binary representation of zero were chosen to be the empty string. - _Jason Kimberley_, Sep 19 2011

%C From _Bernard Schott_, Jun 15 2021: (Start)

%C Except for a(0) = 1, every term is even.

%C For each q >= 0, there is one and only one odd number h such that a(n) = 2*q iff n = h*2^m-1 for m >= 1 when q = 0, and for m >= 0 when q >= 1 (see A345401 and some examples below).

%C a(n) = 0 iff n = 2^m-1 for m >= 1 (Mersenne numbers) (A000225).

%C a(n) = 2 iff n = 3*2^m-1 for m >= 0 (A153893).

%C a(n) = 4 iff n = 7*2^m-1 for m >= 0 (A086224).

%C a(n) = 6 iff n = 5*2^m-1 for m >= 0 (A153894).

%C a(n) = 8 iff n = 15*2^m-1 for m >= 0 (A196305).

%C a(n) = 10 iff n = 11*2^m-1 for m >= 0 (A086225).

%C a(n) = 12 iff n = 13*2^m-1 for m >= 0 (A198274).

%C For k >= 1, a(n) = 2^k iff n = (2^(k+1)-1)*2^m - 1 for m >= 0.

%C Explanation for a(n) = 2:

%C For m >= 0, A153893(m) = 3*2^m-1 -> 1011...11 -> 0100...00 -> 10 -> 2 where 1011...11_2 is 10 followed by m 1's. (End)

%H Indranil Ghosh, <a href="/A036044/b036044.txt">Table of n, a(n) for n = 0..10000</a> (first 1024 terms from T. D. Noe)

%F a(2n) = 2*A059894(n), a(2n+1) = a(2n) - 2^floor(log_2(n)+1). - _Ralf Stephan_, Aug 21 2003

%e 4 -> 100 -> 011 -> 110 -> 6.

%p A036044 := proc(n)

%p local bcr ;

%p if n = 0 then

%p return 1;

%p end if;

%p convert(n,base,2) ;

%p bcr := [seq(1-i,i=%)] ;

%p add(op(-k,bcr)*2^(k-1),k=1..nops(bcr)) ;

%p end proc:

%p seq(A036044(n),n=0..200) ; # _R. J. Mathar_, Nov 06 2017

%t dtn[ L_ ] := Fold[ 2#1+#2&, 0, L ]; f[ n_ ] := dtn[ Reverse[ 1-IntegerDigits[ n, 2 ] ] ]; Table[ f[ n ], {n, 0, 100} ]

%t Table[FromDigits[Reverse[IntegerDigits[n,2]/.{1->0,0->1}],2],{n,0,80}] (* _Harvey P. Dale_, Mar 08 2015 *)

%o (Haskell)

%o import Data.List (unfoldr)

%o a036044 0 = 1

%o a036044 n = foldl (\v d -> 2 * v + d) 0 (unfoldr bc n) where

%o bc 0 = Nothing

%o bc x = Just (1 - m, x') where (x',m) = divMod x 2

%o -- _Reinhard Zumkeller_, Sep 16 2011

%o (Magma) A036044:=func<n|n eq 0 select 1 else SequenceToInteger(Reverse([1-b:b in IntegerToSequence(n,2)]),2)>; // _Jason Kimberley_, Sep 19 2011

%o (PARI) a(n)=fromdigits(Vecrev(apply(n->1-n,binary(n))),2) \\ _Charles R Greathouse IV_, Apr 22 2015

%o (Python)

%o def comp(s): z, o = ord('0'), ord('1'); return s.translate({z:o, o:z})

%o def BCR(n): return int(comp(bin(n)[2:])[::-1], 2)

%o print([BCR(n) for n in range(75)]) # _Michael S. Branicky_, Jun 14 2021

%o (Python)

%o def A036044(n): return -int((s:=bin(n)[-1:1:-1]),2)-1+2**len(s) # _Chai Wah Wu_, Feb 04 2022

%Y Cf. A030101, A056539, A345401.

%Y Cf. A035928 (fixed points), A195063, A195064, A195065, A195066.

%Y Indices of terms 0, 2, 4, 6, 8, 10, 12, 14, 18, 22, 26, 30: A000225 \ {0}, A153893, A086224, A153894, A196305, A086225, A198274, A052996\{1,3}, A291557, A198276, A171389, A198275.

%K nonn,easy,base,nice,look

%O 0,3

%A _N. J. A. Sloane_