login
a(0) = 0, a(1) = 1; for n > 1, a(n) = a(n-1) XOR a(n-2) XOR n.
1

%I #33 May 05 2021 13:49:46

%S 0,1,3,1,6,2,2,7,13,3,4,12,4,5,15,5,26,14,6,27,9,7,24,8,8,25,11,9,30,

%T 10,10,31,53,11,28,52,12,29,55,13,18,54,14,19,49,15,16,48,16,17,51,17,

%U 22,50,18,23,61,19,20,60,20,21,63,21,106,62,22,107,57

%N a(0) = 0, a(1) = 1; for n > 1, a(n) = a(n-1) XOR a(n-2) XOR n.

%C Note that a(3n) = n.

%H T. D. Noe, <a href="/A182182/b182182.txt">Table of n, a(n) for n = 0..1023</a>

%H Eric Weisstein's World of Mathematics, <a href="http://mathworld.wolfram.com/XOR.html">XOR</a>

%H Wikipedia, <a href="http://en.wikipedia.org/wiki/Bitwise_operation#XOR">Bitwise operation XOR</a>

%t t = {0, 1}; Do[AppendTo[t, BitXor[n, t[[-1]], t[[-2]]]], {n, 2, 100}]; t (* _T. D. Noe_, Apr 18 2012 *)

%t nxt[{n_,a_,b_}]:={n+1,b,BitXor[a,b,n+1]}; Transpose[NestList[nxt,{1,0,1},100]] [[2]] (* _Harvey P. Dale_, Aug 14 2013 *)

%o (Python)

%o prpr = 0

%o prev = 1

%o print('0,1', end=',')

%o for i in range(2,101):

%o current = prev ^ prpr ^ i

%o print(current, end=",")

%o prpr = prev

%o prev = current

%o (Haskell)

%o import Data.Bits (xor)

%o a182182 n = a182182_list !! n

%o a182182_list = 0 : 1 : zipWith xor [2..]

%o (zipWith xor a182182_list $ tail a182182_list) :: [Integer]

%o -- _Reinhard Zumkeller_, Apr 23 2012

%Y Cf. A038712.

%K nonn,base,look

%O 0,3

%A _Alex Ratushnyak_, Apr 17 2012