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.

A164710 A positive integer n is included if all runs of 0's in binary n are of the same length.

Original entry on oeis.org

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 39, 42, 43, 45, 46, 47, 48, 49, 51, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 67, 71, 73, 76, 79, 85, 86, 87, 90, 91, 93, 94, 95, 96, 97, 99, 100
Offset: 1

Views

Author

Leroy Quet, Aug 23 2009

Keywords

Comments

Clarification: A binary number consists of "runs" completely of 1's alternating with runs completely of 0's. No two or more runs all of the same digit are adjacent.
This sequence contains in part positive integers that each contain one run of 0's. For those members of this sequence each with at least two runs of 0's, see A164712.
Number of terms with n binary digits is A243815(n-1). - Robert Israel, Nov 09 2015

Crossrefs

Programs

  • Maple
    isA164710 := proc(n) local bdg,arl,lset ; bdg := convert(n,base,2) ; lset := {} ; arl := -1 ; for p from 1 to nops(bdg) do if op(p,bdg) = 0 then if p = 1 then arl := 1 ; else arl := arl+1 ; end if; else if arl > 0 then lset := lset union {arl} ; end if; arl := 0 ; end if; end do ; if arl > 0 then lset := lset union {arl} ; end if; return (nops(lset) <= 1 ); end proc: for n from 1 to 300 do if isA164710(n) then printf("%d,",n) ; end if; end do; # R. J. Mathar, Feb 27 2010
    F:= proc(d)
      local res,r,m,e,C,M;
      res:= [1$d];
      for r from 1 to floor(d/2) do
        for m from 1 to floor(d/r)-1 do
           e:= d - r*(m+1);
           for C in combinat:-choose(e+r,e) do
             M:= subsop(op(map(`=`,C,1)),[0$(e+r)]);
             res:= res, subs(0 = (1,0$m), M);
           od
        od
      od;
      sort(map(t -> add(t[-i]*2^(i-1),i=1..d), [res]));
    end proc:
    N:= 10: # to get all terms < 2^N
    map(op,[seq(F(d),d=1..N)]); # Robert Israel, Nov 09 2015
  • Mathematica
    Select[Range@ 100, SameQ @@ Map[Length, Select[Split@ IntegerDigits[#, 2], First@ # == 0 &]] &] (* Michael De Vlieger, Aug 20 2017 *)
  • Perl
    foreach(1..100){
        %runs=();
        $runs{$}++ foreach split /1+/, sprintf("%b",$);
        delete $runs{''};
        print "$_, " if 1>=keys(%runs);
    }
    # Ivan Neretin, Nov 09 2015

Extensions

Terms beyond 39 by R. J. Mathar, Feb 27 2010