cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

Showing 1-1 of 1 results.

A357758 Numbers k such that in the binary expansion of k, the Hamming weight of each block differs by at most 1 from every other block of the same length.

Original entry on oeis.org

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 26, 27, 29, 30, 31, 32, 33, 34, 36, 37, 41, 42, 43, 45, 46, 47, 53, 54, 55, 59, 61, 62, 63, 64, 65, 66, 68, 72, 73, 74, 82, 84, 85, 86, 90, 91, 93, 94, 95, 106, 107, 109, 110, 111
Offset: 1

Views

Author

Rémy Sigrist, Oct 12 2022

Keywords

Comments

Leading zeros in binary expansions are ignored.
For any n > 0, there are A005598(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.

Examples

			For k = 42:
- the binary expansion of 42 is "101010",
- blocks of length 1 have Hamming weight 0 or 1,
- blocks of length 2 have Hamming weight 1,
- blocks of length 3 have Hamming weight 1 or 2,
- blocks of length 4 have Hamming weight 2,
- blocks of length 5 have Hamming weight 2 or 3,
- so 42 belongs to the sequence.
For k = 44:
- the binary expansion of 44 is "101100",
- blocks of length 2 have Hamming weight 0, 1 or 2,
- so 44 does not belong to the sequence.
		

Crossrefs

Programs

  • PARI
    See Links section.
    
  • Python
    def ok(n):
        b = bin(n)[2:]
        if "00" in b and "11" in b: return False
        for l in range(3, len(b)):
            h = set(b[i:i+l].count("1") for i in range(len(b)-l+1))
            if max(h) - min(h) > 1: return False
        return True
    print([k for k in range(112) if ok(k)]) # Michael S. Branicky, Oct 12 2022
Showing 1-1 of 1 results.