OFFSET
0,5
COMMENTS
One coordinate of a recursive non-self-intersecting walk on the square lattice Z^2.
LINKS
Peter Kagey, Table of n, a(n) for n = 0..8192
G. M. Morton, A Computer Oriented Geodetic Data Base; and a New Technique in File Sequencing, IBM, 1966, with a(n) being section 5.1 step (c).
FORMULA
To get a(n), write n as Sum b_j*2^j, then a(n) = Sum b_(2j)*2^j. - Vladimir Shevelev, Nov 13 2008
G.f.: (1-x)^(-1) * Sum_{j>=0} 2^j*x^(2^j)/(1+x^(2^j)). - Robert Israel, Aug 12 2015
a(n) = A059906(2*n). - Velin Yanev, Dec 01 2016
EXAMPLE
MAPLE
f:= proc(n) local L; L:= convert(n, base, 2); add(L[2*i+1]*2^i, i=0..floor((nops(L)-1)/2)) end;
map(f, [$0..256]); # Robert Israel, Aug 12 2015
MATHEMATICA
a[n_] := Module[{P}, (P = Partition[IntegerDigits[2n, 2]//Reverse, 2][[All, 2]]).(2^(Range[Length[P]]-1))]; Array[a, 100, 0] (* Jean-François Alcover, Apr 24 2019 *)
PROG
(Ruby)
def a(n)
(0..n.bit_length/2).to_a.map { |i| (n >> 2 * i & 1) << i}.reduce(:+)
end # Peter Kagey, Aug 12 2015
(Python)
def a(n): return sum([(n>>2*i&1)<<i for i in range(len(bin(n)[2:])//2 + 1)])
print([a(n) for n in range(101)]) # Indranil Ghosh, Jun 25 2017, after Ruby code by Peter Kagey
(Python)
def A059905(n): return int(bin(n)[:1:-2][::-1], 2) # Chai Wah Wu, Jun 30 2022
(PARI) A059905(n) = { my(t=1, s=0); while(n>0, s += (n%2)*t; n \= 4; t *= 2); (s); }; \\ Antti Karttunen, Apr 14 2018
CROSSREFS
KEYWORD
AUTHOR
Marc LeBrun, Feb 07 2001
STATUS
approved