login
A357759
Numbers k such that in the binary expansion of k, the Hamming weight of each block differs by at most 2 from every other block of the same length.
3
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 72, 73, 74, 75
OFFSET
1,3
COMMENTS
Leading zeros in binary expansions are ignored.
For any n > 0, there are A274005(n)/2 positive terms with binary length n.
Empirically, if t is a term, then at least one of 2*t or 2*t + 1 is also a term.
If t is a term, then floor(t/2) is also a term.
The complement with respect to the nonnegative integers is 56, 71, 112, 113, 120, 135, 142, 143, 176, 184, 199, ... - Andrew Howroyd, Oct 09 2024
EXAMPLE
For k = 12:
- the binary expansion of k is "1100",
- blocks of length 1 have Hamming weight 0 or 1,
- blocks of length 2 have Hamming weight 0, 1 or 2,
- blocks of length 3 have Hamming weight 1 or 2,
- blocks of length 4 have Hamming weight 2,
- so 12 belongs to the sequence.
For k = 56:
- the binary expansion of 44 is "111000",
- blocks of length 3 have Hamming weight 0, 1, 2 or 3,
- so 56 does not belong to the sequence.
PROG
(PARI) \\ See Links section.
(Python)
def ok(n):
b = bin(n)[2:]
if "000" in b and "111" in b: return False
for l in range(4, len(b)-1):
h = set(b[i:i+l].count("1") for i in range(len(b)-l+1))
if max(h) - min(h) > 2: return False
return True
print([k for k in range(69) if ok(k)]) # Michael S. Branicky, Oct 12 2022
CROSSREFS
Sequence in context: A272118 A247163 A376668 * A120951 A272554 A179797
KEYWORD
nonn,base
AUTHOR
Rémy Sigrist, Oct 12 2022
EXTENSIONS
a(69) onwards from Andrew Howroyd, Oct 09 2024
STATUS
approved