login
A348710
In the binary expansion of n, decrease the length of each run of 1-bits by one.
4
0, 0, 0, 1, 0, 0, 2, 3, 0, 0, 0, 1, 4, 2, 6, 7, 0, 0, 0, 1, 0, 0, 2, 3, 8, 4, 4, 5, 12, 6, 14, 15, 0, 0, 0, 1, 0, 0, 2, 3, 0, 0, 0, 1, 4, 2, 6, 7, 16, 8, 8, 9, 8, 4, 10, 11, 24, 12, 12, 13, 28, 14, 30, 31, 0, 0, 0, 1, 0, 0, 2, 3, 0, 0, 0, 1, 4, 2, 6, 7, 0, 0, 0
OFFSET
0,7
COMMENTS
Equivalently, change bits 01 -> 0, including a 0 reckoned above the most significant 1-bit of n so change there.
A single 1-bit run decreases to nothing. The Fibbinary numbers (A003714) are those n with only single 1-bits so that a(n) = 0 iff n is in A003714.
a(n) = 1 iff n is in A213540 since those values end with bits 011 (which become 01) and otherwise have only single 1-bits, as do the Fibbinary numbers.
Decreasing each run is the inverse of the increase A175048 so that a(A175048(k)) = k. This n = A175048(k) is the smallest n with a(n) = k and then other occurrences of k are by inserting single 1-bits into this n, including anywhere above the most significant bit.
EXAMPLE
n = 14551 = binary 111 000 11 0 1 0 111
a(n) = 787 = binary 11 000 1 0 0 11
MATHEMATICA
Table[FromDigits[Flatten[Split@IntegerDigits[n, 2]/. {1, a___}:>{a}], 2], {n, 0, 82}] (* Giorgos Kalogeropoulos, Nov 01 2021 *)
PROG
(PARI) a(n) = my(v=binary(n), t=0); for(i=2, #v, if(v[i-1]||!v[i], v[t++]=v[i])); fromdigits(v[1..t], 2);
(Python)
def a(n): return int(bin(n).replace("b", "").replace("01", "0"), 2)
print([a(n) for n in range(83)]) # Michael S. Branicky, Oct 31 2021
CROSSREFS
Cf. A007088 (binary), A175048 (increase 1-bits), A090077 (decrease to single 1-bits).
Cf. A003714 (indices of 0's), A213540 (indices of 1's).
Cf. A106151 (decrease 0-bits), A318921 (decrease each run).
Sequence in context: A037882 A024865 A025109 * A048735 A102037 A286530
KEYWORD
base,easy,nonn
AUTHOR
Kevin Ryde, Oct 30 2021
STATUS
approved