login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

Number of distinct binary numbers contained as substrings in the binary representation of n.
30

%I #40 Jul 31 2022 07:47:23

%S 1,1,3,2,4,4,5,3,5,5,5,6,7,7,7,4,6,6,6,7,7,6,8,8,9,9,9,9,10,10,9,5,7,

%T 7,7,8,7,8,9,9,9,9,7,9,11,10,11,10,11,11,11,11,12,11,11,12,13,13,13,

%U 13,13,13,11,6,8,8,8,9,8,9,10,10,9,8,10,11,11,12,12,11,11,11,11,12,10,8

%N Number of distinct binary numbers contained as substrings in the binary representation of n.

%C For n>0: 0<a(2*n)-a(n)<=A070939(n)+1, 0<a(2*n+1)-a(n) < A070939(n). - _Reinhard Zumkeller_, Mar 07 2008

%C Row lengths in triangle A119709. - _Reinhard Zumkeller_, Aug 14 2013

%H Alois P. Heinz, <a href="/A078822/b078822.txt">Table of n, a(n) for n = 0..16384</a> (first 1001 terms from Reinhard Zumkeller)

%F For k>0: a(2^k-2) = 2*(k-1)+1, a(2^k-1) = k, a(2^k) = k+2;

%F for k>1: a(2^k+1) = k+2;

%F for k>0: a(2^k-1) = A078824(2^k-1), a(2^k) = A078824(2^k).

%e n=10 -> '1010' contains 5 different binary numbers: '0' (b0bb or bbb0), '1' (1bbb or bb1b), '10' (10bb or bb10), '101' (101b) and '1010' itself, therefore a(10)=5.

%p a:= n-> (s-> nops({seq(seq(parse(s[i..j]), i=1..j),

%p j=1..length(s))}))(""||(convert(n, binary))):

%p seq(a(n), n=0..85); # _Alois P. Heinz_, Jan 20 2021

%t a[n_] := (id = IntegerDigits[n, 2]; nd = Length[id]; Length[ Union[ Flatten[ Table[ id[[j ;; k]], {j, 1, nd}, {k, j, nd}], 1] //. {0, b__} :> {b}]]); Table[ a[n], {n, 0, 85}] (* _Jean-François Alcover_, Dec 01 2011 *)

%o (Haskell)

%o a078822 = length . a119709_row

%o import Numeric (showIntAtBase)

%o -- _Reinhard Zumkeller_, Aug 13 2013, Sep 14 2011

%o (PARI) a(n) = {if (n==0, 1, vb = binary(n); vf = []; for (i=1, #vb, for (j=1, #vb - i + 1, pvb = vector(j, k, vb[i+k-1]); f = subst(Pol(pvb), x, 2); vf = Set(concat(vf, f)); ); ); #vf); } \\ _Michel Marcus_, May 08 2016; corrected Jun 13 2022

%o (Python)

%o def a(n): return 1 if n == 0 else len(set(((((2<<l)-1)<<i)&n)>>i for i in range(n.bit_length()) for l in range(n.bit_length()-i)))

%o print([a(n) for n in range(64)]) # _Michael S. Branicky_, Jul 28 2022

%Y Cf. A078823, A078826, A078824, A007088, A141297, A144623, A144624.

%K nonn,base,nice,look

%O 0,3

%A _Reinhard Zumkeller_, Dec 08 2002