A374176 a(n) is the maximum number of consecutive bit changes in the binary representation of n.
0, 1, 0, 1, 2, 1, 0, 1, 1, 3, 2, 1, 2, 1, 0, 1, 1, 2, 1, 3, 4, 2, 2, 1, 1, 3, 2, 1, 2, 1, 0, 1, 1, 2, 1, 2, 3, 1, 1, 3, 3, 5, 4, 2, 2, 2, 2, 1, 1, 2, 1, 3, 4, 2, 2, 1, 1, 3, 2, 1, 2, 1, 0, 1, 1, 2, 1, 2, 3, 1, 1, 2, 2, 4, 3, 1, 2, 1, 1, 3, 3, 3, 3, 5, 6, 4, 4, 2, 2, 3, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 3, 1, 1, 3, 3
Offset: 1
Examples
a(1117) = 3: 1117_2 = [1 0 0 0 1 0 1 1 1 0 1] ^ ^ ^ ^ ^ ^ 1 3 2 consecutive changes
Links
- Hugo Pfoertner, Table of n, a(n) for n = 1..8192
Programs
-
Maple
b:= n-> `if`(n<2, [0$2], (f-> (t-> [t, max(t, f[2])])( `if`(n mod 4 in {0, 3}, 0, f[1]+1)))(b(iquo(n, 2)))): a:= n-> b(n)[2]: seq(a(n), n=1..105); # Alois P. Heinz, Jul 07 2024
-
PARI
a(n) = {my(b=digits(n,2), d=#b, m=0, j=b[1], c=0); for(k=2, d, if(b[k]!=j, c++; m=max(m,c), c=0); j=b[k]); m}
-
Python
def a(n): b, c, m = bin(n)[2:], 0, 0 for i in range(len(b)-1): if b[i] != b[i+1]: c += 1 else: m = max(m, c); c = 0 return max(m, c) print([a(n) for n in range(1, 89)]) # Michael S. Branicky, Jul 06 2024
-
Python
# using formula from itertools import groupby def a(n): return max((len(list(g)) for k, g in groupby(bin(n^(n>>1))[3:]) if k=="1"), default=0) print([a(n) for n in range(1, 89)]) # Michael S. Branicky, Jul 06 2024