%I #24 Aug 11 2024 10:35:28
%S 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,
%T 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,
%U 3,4,3,3,2,3,4,3,4,4,3,3,3,3,4,3,2,3
%N Number of distinct runs in base-2 digits of n.
%C Every positive integers occurs infinitely many times.
%C ***
%C Guide to related sequences:
%C Base b # runs # distinct runs
%C 2 A005811 A297770
%C 3 A043555 A297771
%C 4 A043556 A297772
%C 5 A043557 A297773
%C 6 A043558 A297774
%C 7 A043559 A297775
%C 8 A043560 A297776
%C 9 A043561 A297777
%C 10 A043562 A297778
%C 11 A043563 A297779
%C 12 A043564 A297780
%C 13 A043565 A297781
%C 14 A043566 A297782
%C 15 A043567 A297783
%C 16 A043568 A297784
%H Clark Kimberling, <a href="/A297770/b297770.txt">Table of n, a(n) for n = 1..10000</a>
%e 27 in base-2: 1,1,0,1,1; three runs, of which 2 are distinct: 0 and 11, so that a(27) = 2.
%t b = 2; s[n_] := Length[Union[Split[IntegerDigits[n, b]]]]
%t Table[s[n], {n, 1, 200}]
%o (Python)
%o from itertools import groupby
%o def A297770(n): return len(set(map(lambda x:tuple(x[1]),groupby(bin(n)[2:])))) # _Chai Wah Wu_, Jul 13 2024
%o (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; n>>=L); c}, [0..99]) \\ _M. F. Hasler_, Jul 13 2024
%o (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
%Y Cf. A005811 (number of runs, not necessarily distinct).
%K nonn,base,easy
%O 1,2
%A _Clark Kimberling_, Jan 26 2018