A297770 Number of distinct runs in base-2 digits of n.
1, 2, 1, 2, 2, 2, 1, 2, 2, 2, 3, 2, 3, 2, 1, 2, 2, 3, 3, 3, 2, 3, 3, 2, 3, 3, 2, 2, 3, 2, 1, 2, 2, 3, 3, 2, 3, 4, 3, 3, 3, 2, 3, 4, 3, 3, 3, 2, 3, 4, 2, 4, 3, 2, 3, 2, 3, 3, 3, 2, 3, 2, 1, 2, 2, 3, 3, 3, 3, 4, 3, 3, 2, 3, 4, 3, 4, 4, 3, 3, 3, 3, 4, 3, 2, 3
Offset: 1
Examples
27 in base-2: 1,1,0,1,1; three runs, of which 2 are distinct: 0 and 11, so that a(27) = 2.
Links
- Clark Kimberling, Table of n, a(n) for n = 1..10000
Crossrefs
Cf. A005811 (number of runs, not necessarily distinct).
Programs
-
Mathematica
b = 2; s[n_] := Length[Union[Split[IntegerDigits[n, b]]]] Table[s[n], {n, 1, 200}]
-
PARI
apply( {A297770(n)=my(r=[0,0], c); while(n, my(d=bitand(n,1), L=valuation(n+d, 2)); !bittest(r[1+d], L) && c++ && r[1+d] += 1<
>=L); c}, [0..99]) \\ M. F. Hasler, Jul 13 2024 -
PARI
a(n) = my(s=strjoin(binary(n)), v=vecsort(concat(strsplit(s, "1"), strsplit(s, "0")), , 8)); #v-(v[1]==""); \\ Ruud H.G. van Tol, Aug 05 2024
-
Python
from itertools import groupby def A297770(n): return len(set(map(lambda x:tuple(x[1]),groupby(bin(n)[2:])))) # Chai Wah Wu, Jul 13 2024
Comments