|
|
A274009
|
|
1's distance from a number in its binary expansion.
|
|
0
|
|
|
1, 0, 2, 1, 2, 1, 3, 2, 2, 1, 3, 2, 3, 2, 4, 3, 2, 1, 3, 2, 3, 2, 4, 3, 3, 2, 4, 3, 4, 3, 5, 4, 2, 1, 3, 2, 3, 2, 4, 3, 3, 2, 4, 3, 4, 3, 5, 4, 3, 2, 4, 3, 4, 3, 5, 4, 4, 3, 5, 4, 5, 4, 6, 5, 2, 1, 3, 2, 3, 2, 4, 3, 3, 2, 4, 3, 4, 3, 5, 4, 3, 2, 4, 3, 4, 3, 5, 4, 4, 3
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
0,3
|
|
COMMENTS
|
To generate the value for n, write out n's decimal expansion. Then, write out 1's decimal expansion (0000000000....001). Compute how many times you need to change 0 to a 1 or a 1 to a 0 in order to switch from one number to the other.
The value for 2^x is always 2. The value for 2^x +1 is always 1. The value for 2^x -1 is always x-1 when x > 0. To get to 2^x, you need to drop the 1 at the beginning and add the 1 in the 2^x place value.
For 2^x + 1, you need to add the 1 in the 2^n place value, but you keep the 1 in the 1s place value. Thus you are only adding or getting rid of 1 digit.
For 2^x -1, it will have x digits, and all of them will be 1's. You already have 1 in the 1's place value, so there are n-1 digits left over.
|
|
LINKS
|
|
|
FORMULA
|
|
|
MATHEMATICA
|
Table[If[OddQ@ n, # - 1, # + 1] &@ DigitCount[n, 2, 1], {n, 0, 120}] (* Michael De Vlieger, Jul 13 2016 *)
|
|
PROG
|
(PARI) a(n) = hammingweight(n) + (-1)^n; \\ Michel Marcus, Jul 14 2016
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn,base
|
|
AUTHOR
|
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|