cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

Showing 1-3 of 3 results.

A089309 Write n in binary; a(n) = length of the rightmost run of 1's.

Original entry on oeis.org

0, 1, 1, 2, 1, 1, 2, 3, 1, 1, 1, 2, 2, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 3, 2, 1, 1, 2, 3, 1, 4, 5, 1, 1, 1, 2, 1, 1, 2, 3, 1, 1, 1, 2, 2, 1, 3, 4, 2, 1, 1, 2, 1, 1, 2, 3, 3, 1, 1, 2, 4, 1, 5, 6, 1, 1, 1, 2, 1, 1, 2, 3, 1, 1, 1, 2, 2, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 3, 2, 1, 1, 2, 3, 1, 4, 5, 2, 1, 1, 2, 1, 1, 2, 3, 1
Offset: 0

Views

Author

N. J. A. Sloane, Dec 22 2003

Keywords

Comments

Equivalent to: remove trailing zeros, add one, count trailing zeros. - Ralf Stephan, Aug 31 2013
a(n) is also the difference between the two largest distinct parts in the integer partition having viabin number n (we assume that 0 is a part). The viabin number of an integer partition is defined in the following way. Consider the southeast border of the Ferrers board of the integer partition and consider the binary number obtained by replacing each east step with 1 and each north step, except the last one, with 0. The corresponding decimal form is, by definition, the viabin number of the given integer partition. "Viabin" is coined from "via binary". For example, consider the integer partition [2,2,2,1]. The southeast border of its Ferrers board yields 10100, leading to the viabin number 20. Note that a(20) = 1 = the difference between the two largest distinct parts of the partition [2,2,2,1]. - Emeric Deutsch, Aug 17 2017

Examples

			13 = 1101 so a(13) = 1.
		

Crossrefs

Programs

  • Maple
    a := proc(n) if n = 0 then 0 elif `mod`(n, 2) = 0 then a((1/2)*n) elif `mod`(n, 4) = 1 then 1 else 1+a((1/2)*n-1/2) end if end proc: seq(a(n), n = 0 .. 104); # Emeric Deutsch, Aug 17 2017
  • Mathematica
    Table[If[n == 0, 0, Length@ Last@ Select[Split@ IntegerDigits[n, 2], First@ # == 1 &]], {n, 0, 104}] (* Michael De Vlieger, Aug 17 2017 *)
  • PARI
    a(n) = if (n==0, 0, valuation(n/2^valuation(n, 2)+1, 2)); \\ Ralf Stephan, Aug 31 2013; Michel Marcus, Apr 30 2020
    
  • Python
    def A089309(n): return (~((m:=n>>(~n&n-1).bit_length())+1)&m).bit_length() # Chai Wah Wu, Jul 13 2022

Formula

a(2*n) = a(n), a(2*n+1) = A007814(2*n+2) = A001511(n+1). - Ralf Stephan, Jan 31 2004
a(0) = 0, a(2*n) = a(n), a(4*n+1) = 1, a(4*n+3) = 1 + a(2*n+1) (the Maple program makes use of these equations). - Emeric Deutsch, Aug 17 2017

Extensions

More terms from Vladeta Jovovic and John W. Layman, Jan 21 2004

A089313 Write n in binary; a(n) = number represented by second block of 1's from the right.

Original entry on oeis.org

0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 3, 3, 3, 0, 7, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 0, 3, 3, 3, 3, 1, 3, 3, 0, 7, 7, 7, 0, 15, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 1, 7, 1, 1, 0, 3, 3, 3, 3, 1, 3, 3, 3, 1, 1, 1, 3, 3, 3, 3, 0, 7, 7, 7, 7, 1, 7, 7, 0
Offset: 0

Views

Author

N. J. A. Sloane, Dec 22 2003

Keywords

Examples

			13 = 1101 so a(13) = 3.
		

Crossrefs

Programs

  • Maple
    f:= proc(n) local t,q,r;
      r:= 0: t:= n;
      while t::even do t:= t/2 od;
      while t::odd do t:= (t-1)/2 od;
      if t = 0 then return 0 fi;
      while t::even do t:= t/2 od;
      while t::odd do r:= 2*r+1; t:= (t-1)/2 od;
      r
    end proc:
    f(0):= 0:
    map(f, [$0..120]); # Robert Israel, Aug 03 2025
  • Mathematica
    sb1[n_]:=With[{c=If[#[[1]]==0,Nothing,#]&/@Split[IntegerDigits[n,2]]},If[Length[c]==1,0,FromDigits[c[[-2]],2]]]; Join[{0},Table[sb1[n],{n,120}]] (* Harvey P. Dale, Aug 02 2025 *)
  • PARI
    { a(n) = local(b,l,r,c); b=binary(n); l=length(b); while(l&&b[l]==0,l--); while(l&&b[l]==1,l--); while(l&&b[l]==0,l--); r=0; c=0; while(l&&b[l],r+=2^c;l--;c++); r; }
    for(i=0,200,print1(a(i),", ")) \\ Lambert Klasen (Lambert.Klasen(AT)gmx.net), Sep 09 2005

Formula

a(n) = 2^A089310(n)-1. - David Wasserman, Sep 09 2005

Extensions

More terms from David Wasserman and Lambert Klasen (Lambert.Klasen(AT)gmx.net), Sep 09 2005
Corrected and extended by Harvey P. Dale, Aug 02 2025

A089310 Write n in binary; a(n) = number of 1's in second block of 1's from right.

Original entry on oeis.org

0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 2, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 2, 2, 2, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 0, 2, 2, 2, 2, 1, 2, 2, 0, 3, 3, 3, 0, 4, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 3, 1, 1, 0, 2, 2, 2
Offset: 0

Views

Author

N. J. A. Sloane, Dec 22 2003

Keywords

Examples

			13 = 1101 so a(13) = 2.
		

Crossrefs

Programs

  • Maple
    f:= proc(n) local t,q,r;
      r:= 0: t:= n;
      while t::even do t:= t/2 od;
      while t::odd do t:= (t-1)/2 od;
      if t = 0 then return 0 fi;
      while t::even do t:= t/2 od;
      while t::odd do r:= r+1; t:= (t-1)/2 od;
      r
    end proc:
    f(0):= 0:
    map(f, [$0..100]); # Robert Israel, Aug 03 2025
  • PARI
    a(n)=my(b, c, s); if(n==0,return(0)); b=binary(n); c=length(b); while(!b[c], c=c-1); while(c>0&&b[c], c=c-1); if(c<=0, 0, while(!b[c], c=c-1); s=0; while(c>0&&b[c], c=c-1;s=s+1);s) /* Ralf Stephan, Feb 01 2004 */

Extensions

More terms from Ralf Stephan, Feb 01 2004
Showing 1-3 of 3 results.