|
|
A290255
|
|
Number of 0's following directly the first 1 in the binary representation of n.
|
|
7
|
|
|
0, 1, 0, 2, 1, 0, 0, 3, 2, 1, 1, 0, 0, 0, 0, 4, 3, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 5, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,4
|
|
LINKS
|
|
|
FORMULA
|
a(2^k)= k (k>=0); otherwise, a(n) = a(floor(n/2)).
G.f. q(x) + Sum_{j>=1} q(x^(2^j))*(x^(2^j)-x^(2^(j-1)))/(x-1) where q(z) = Sum_{j>=1} j*x^(2^j). - Robert Israel, Sep 03 2017
|
|
EXAMPLE
|
a(19) = 2 because 19_2 = 10'0'11; a(21) = 1 because 21_2 = 10'101_2 (the counted 0's are marked).
|
|
MAPLE
|
a := proc (n) if type(log[2](n), integer) = true then log[2](n) else a(floor((1/2)*n)) end if end proc: seq(a(n), n = 1 .. 200);
# Alternate:
f := proc(n) option remember; local v;
v:= padic:-ordp(n, 2);
if n = 2^v then v else procname((n-2^v)/2^(v+1)) fi
end proc:
|
|
MATHEMATICA
|
sfo[n_]:=Module[{sidn2=Split[IntegerDigits[n, 2]]}, If[Length[ sidn2[[1]]]> 1, 0, Length[ sidn2[[2]]]]]; Join[{0}, Array[sfo, 110, 2]] (* Harvey P. Dale, Mar 04 2018 *)
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn,base
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|