|
|
A165413
|
|
a(n) is the number of distinct lengths of runs in the binary representation of n.
|
|
30
|
|
|
1, 1, 1, 2, 1, 2, 1, 2, 2, 1, 2, 1, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 3, 2, 2, 2, 3, 2, 2, 1, 2, 2, 2, 2, 2, 2, 3, 2, 1, 2, 2, 2, 3, 1, 3, 2, 3, 2, 2, 2, 1, 2, 2, 2, 3, 3, 2, 3, 2, 3, 2, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 1, 2, 2, 3, 2, 2, 2, 3, 2, 2, 2, 2, 3, 3, 2, 2, 2, 2, 2, 3, 2
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,4
|
|
COMMENTS
|
|
|
LINKS
|
|
|
FORMULA
|
|
|
EXAMPLE
|
92 in binary is 1011100. There is a run of one 1, followed by a run of one 0, then a run of three 1's, then finally a run of two 0's. The run lengths are therefore (1,1,3,2). The distinct values of these run lengths are (1,3,2). Since there are 3 distinct values, then a(92) = 3.
|
|
MATHEMATICA
|
f[n_] := Length@ Union@ Map[ Length, Split@ IntegerDigits[n, 2]]; Array[f, 105] (* Robert G. Wilson v, Sep 30 2009 *)
|
|
PROG
|
(Haskell)
import Data.List (group, nub)
a165413 = length . nub . map length . group . a030308_row
(PARI)
binruns(n) = {
if (n == 0, return([1, 0]));
my(bag = List(), v=0);
while(n != 0,
v = valuation(n, 2); listput(bag, v); n >>= v; n++;
v = valuation(n, 2); listput(bag, v); n >>= v; n--);
return(Vec(bag));
};
a(n) = #Set(select(k->k, binruns(n)));
(Python)
from itertools import groupby
def a(n): return len(set([len(list(g)) for k, g in groupby(bin(n)[2:])]))
|
|
CROSSREFS
|
|
|
KEYWORD
|
base,nonn
|
|
AUTHOR
|
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|