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.

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.

This page as a plain text file.
%I A357758 #10 Oct 13 2022 12:28:16
%S A357758 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,
%T A357758 31,32,33,34,36,37,41,42,43,45,46,47,53,54,55,59,61,62,63,64,65,66,68,
%U A357758 72,73,74,82,84,85,86,90,91,93,94,95,106,107,109,110,111
%N 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.
%C A357758 Leading zeros in binary expansions are ignored.
%C A357758 For any n > 0, there are A005598(n)/2 positive terms with binary length n.
%C A357758 Empirically, if t is a term, then at least one of 2*t or 2*t + 1 is also a term.
%C A357758 If t is a term, then floor(t/2) is also a term.
%H A357758 Rémy Sigrist, <a href="/A357758/a357758.gp.txt">PARI program</a>
%H A357758 <a href="/index/Bi#binary">Index entries for sequences related to binary expansion of n</a>
%e A357758 For k = 42:
%e A357758 - the binary expansion of 42 is "101010",
%e A357758 - blocks of length 1 have Hamming weight 0 or 1,
%e A357758 - blocks of length 2 have Hamming weight 1,
%e A357758 - blocks of length 3 have Hamming weight 1 or 2,
%e A357758 - blocks of length 4 have Hamming weight 2,
%e A357758 - blocks of length 5 have Hamming weight 2 or 3,
%e A357758 - so 42 belongs to the sequence.
%e A357758 For k = 44:
%e A357758 - the binary expansion of 44 is "101100",
%e A357758 - blocks of length 2 have Hamming weight 0, 1 or 2,
%e A357758 - so 44 does not belong to the sequence.
%o A357758 (PARI) See Links section.
%o A357758 (Python)
%o A357758 def ok(n):
%o A357758     b = bin(n)[2:]
%o A357758     if "00" in b and "11" in b: return False
%o A357758     for l in range(3, len(b)):
%o A357758         h = set(b[i:i+l].count("1") for i in range(len(b)-l+1))
%o A357758         if max(h) - min(h) > 1: return False
%o A357758     return True
%o A357758 print([k for k in range(112) if ok(k)]) # _Michael S. Branicky_, Oct 12 2022
%Y A357758 Cf. A005598, A274008, A357759.
%K A357758 nonn,base
%O A357758 1,3
%A A357758 _Rémy Sigrist_, Oct 12 2022