|
|
A161225
|
|
a(n) = number of distinct integers that can be constructed by removing one or more 0's from the binary representation of n, and concatenating while leaving the remaining digits in their same order.
|
|
1
|
|
|
0, 1, 0, 2, 1, 1, 0, 3, 2, 3, 1, 2, 1, 1, 0, 4, 3, 5, 2, 5, 3, 3, 1, 3, 2, 3, 1, 2, 1, 1, 0, 5, 4, 7, 3, 8, 5, 5, 2, 7, 5, 7, 3, 5, 3, 3, 1, 4, 3, 5, 2, 5, 3, 3, 1, 3, 2, 3, 1, 2, 1, 1, 0, 6, 5, 9, 4, 11, 7, 7, 3, 11, 8, 11, 5, 8, 5, 5, 2, 9, 7, 11, 5, 11, 7, 7, 3, 7, 5, 7, 3, 5, 3, 3, 1, 5, 4, 7, 3, 8, 5, 5, 2
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,4
|
|
LINKS
|
|
|
EXAMPLE
|
20 in binary is 10100. By removing one, two, or three 0's from this, we can come up with these distinct integers written in binary: 1100, 1010, 110, 101, 11. There are five of these, so a(20) = 5.
|
|
MAPLE
|
g:= proc(n) n + 2^(ilog2(n)) end proc:
h:= proc(n) n + 2^(1+ilog2(n)) end proc:
f:= proc(n) option remember; local S, k, r;
k:= ilog2(n)-1; r:= floor(n/2^k);
if r = 2 then S:= procname(n-2^k); {n-2^k} union S union map(g, S)
else map(h, procname(n - 2^(k+1)))
fi
end proc:
f(1):= {}: f(2):= {1}:
|
|
PROG
|
(Magma) ndi:=function(n) a:=Intseq(n, 2); p:=1; c:=1; for j:=1 to #a do if a[j] eq 0 then c+:=1; else p*:=c; c:=1; end if; end for; return p-1; end function; [ ndi(n): n in [1..103] ]; // Klaus Brockhaus, Jun 10 2009
|
|
CROSSREFS
|
|
|
KEYWORD
|
|
|
AUTHOR
|
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|