A339451 Gray-code-like sequence in which, at each step, the least significant bit that has never been toggled from the previous value, is toggled.
0, 1, 0, 2, 3, 2, 0, 4, 5, 4, 6, 7, 6, 4, 0, 8, 9, 8, 10, 11, 10, 8, 12, 13, 12, 14, 15, 14, 12, 8, 0, 16, 17, 16, 18, 19, 18, 16, 20, 21, 20, 22, 23, 22, 20, 16, 24, 25, 24, 26, 27, 26, 24, 28, 29, 28, 30, 31, 30, 28, 24, 16, 0, 32, 33, 32, 34, 35, 34, 32, 36
Offset: 0
Examples
For n = 18, a(n-1) = 8. That is the second 8 in the sequence. We cannot toggle the 1-bit, because that was already used to derive a(16) = 9 from a(15) = 8, so instead we toggle the 2-bit, yielding a(n) = 10.
Links
- Alois P. Heinz, Table of n, a(n) for n = 0..65535
Programs
-
Maple
a:= proc() local b, a; b:= proc() 1/2 end; a:= proc(n) option remember; local h; if n=0 then 0 else h:= a(n-1); b(h):= 2*b(h); Bits[Xor](h, b(h)) fi end end(): seq(a(n), n=0..127); # Alois P. Heinz, Dec 05 2020
-
Mathematica
a[m_] := Module[{b, a}, b[] = 1/2; a[n] := a[n] = Module[{h}, If[n == 0 , 0 , h = a[n - 1]; b[h] = 2*b[h]; BitXor[h, b[h]]]]; a[m]]; Table[a[n], {n, 0, 127}] (* Jean-François Alcover, May 15 2022, after Alois P. Heinz *)
Comments