A283165 a(0) = 0; a(1) = 1; a(2*n) = 2*a(n), a(2*n+1) = 2*a(n) + (-1)^a(n+1).
0, 1, 2, 3, 4, 3, 6, 7, 8, 7, 6, 7, 12, 11, 14, 15, 16, 15, 14, 15, 12, 11, 14, 15, 24, 23, 22, 23, 28, 27, 30, 31, 32, 31, 30, 31, 28, 27, 30, 31, 24, 23, 22, 23, 28, 27, 30, 31, 48, 47, 46, 47, 44, 43, 46, 47, 56, 55, 54, 55, 60, 59, 62, 63, 64, 63, 62, 63, 60, 59, 62, 63, 56, 55, 54, 55, 60, 59, 62, 63, 48, 47, 46, 47, 44, 43, 46, 47, 56, 55, 54
Offset: 0
Keywords
Examples
a(0) = 0; a(1) = 1; a(2) = a(2*1) = 2*a(1) = 2; a(3) = a(2*1+1) = 2*a(1) + (-1)^a(2) = 2*1 + (-1)^2 = 3; a(4) = a(2*2) = 2*a(2) = 2*2 = 4; a(5) = a(2*2+1) = 2*a(2) + (-1)^a(3) = 2*2 + (-1)^3 = 3, etc.
Links
- Indranil Ghosh, Table of n, a(n) for n = 0..10000
- Michael Gilleland, Some Self-Similar Integer Sequences
- Ilya Gutkovskiy, Extended graphical example
Programs
-
Mathematica
a[0] = 0; a[1] = 1; a[n_] := If[EvenQ[n], 2 a[n/2], 2 a[(n - 1)/2] + (-1)^a[(n + 1)/2]]; Table[a[n], {n, 0, 90}]
-
PARI
a(n) = if (n<2, n, if (n%2==0, 2*a(n/2), 2*a((n-1)/2)+(-1)^(a(n+1)/2))); tabl(nn)={for (n=0, nn, print1(a(n), ", "); ); }; tabl(90); \\ Indranil Ghosh, Mar 03 2017
-
Python
def a(n): if n<2: return n if n%2==0: return 2*a(n//2) else: return 2*a((n-1)//2)+(-1)**a((n+1)//2) # Indranil Ghosh, Mar 03 2017