A087116 Number of maximal groups of consecutive zeros in binary representation of n.
1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 1, 0, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 0, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 3, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2, 2, 1, 1, 1, 2, 1, 1, 1, 1, 0, 1, 1, 2, 1, 2, 2, 2, 1, 2, 2, 3, 2, 2, 2, 2, 1, 2, 2, 3, 2, 3, 3, 3, 2, 2, 2, 3, 2, 2, 2, 2, 1, 1, 1, 2, 1, 2, 2
Offset: 0
Keywords
Examples
G.f. = 1 + x^2 + x^4 + x^5 + x^6 + x^8 + x^9 + 2*x^10 + x^11 + x^12 + x^13 + x^14 + ...
Links
Crossrefs
Programs
-
Haskell
a087116 0 = 1 a087116 n = f 0 n where f y 0 = y f y x = if r == 0 then g x' else f y x' where (x', r) = divMod x 2 g z = if r == 0 then g z' else f (y + 1) z' where (z', r) = divMod z 2 -- Reinhard Zumkeller, Mar 31 2015
-
Mathematica
a[n_] := SequenceCount[IntegerDigits[n, 2], {Longest[0..]}]; Table[a[n], {n, 0, 101}] (* Jean-François Alcover, Oct 18 2021 *)
-
PARI
a(n) = if (n == 0, 1, hammingweight(bitxor(n, n>>1)) >> 1); vector(102, i, a(i-1)) \\ Gheorghe Coserea, Sep 17 2015
-
Python
def A087116(n): return sum(1 for d in bin(n)[2:].split('1') if len(d)) # Chai Wah Wu, Nov 04 2016
Formula
a(n) = A033264(n) for n > 0 since strings of 0's alternate with strings of 1's. - Jonathan Sondow, Jan 17 2016
a(n) = a(2*n + 1) = a(4*n + 2) - 1, if n > 0. - Michael Somos, Nov 04 2016
Comments