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.

A006345 Linus sequence: a(n) "breaks the pattern" by avoiding the longest doubled suffix.

Original entry on oeis.org

1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, 2, 2, 1, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 1, 1, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 2, 2, 2, 1, 2
Offset: 1

Views

Author

Keywords

Comments

To find a(n), consider either a 1 or a 2. For each, find the longest repeated suffix, that is, for each of a(n)=1,2, find the longest sequence s with the property that the sequence a(1),...,a(n) ends with ss. Use the digit that results in the shorter such suffix. a(1) = 1. The empty sequence of length 0 is the shortest possible suffix and is trivially doubled. Note that this doesn't result in exactly Linus's choices. - K. Ramsey, kramsey(AT)aol.com
On average, it seems that (# of 1s up to n) - (# of 2s up to n) -> infinity as n -> infinity (as O(log n)?), while the asymptotic density of either 1s or 2s appears to be 1/2. - Daniel Forgues, Mar 01 2017

Examples

			After 1,2,1,1,2,2,1,2, if we put a 1, the suffix {2,1} repeats, but if we put a 2 the longer suffix {1,2,2} repeats, so the next term is 1.
		

References

  • N. S. Hellerstein, Letter to N. J. A. Sloane (1978).
  • N. J. A. Sloane and Simon Plouffe, The Encyclopedia of Integer Sequences, Academic Press, 1995 (includes this sequence).

Crossrefs

Cf. A006346, A094840, A157238 (A006345(n) - 1).

Programs

  • Maple
    LDS:= proc(L)
      local Cands, r,m;
      Cands:= {$1..floor(nops(L)/2)};
      r:= 0;
    for m from 1 while nops(Cands) > 0 do
         Cands:= select(c -> L[-m] = L[-c-m], Cands);
         if min(Cands) = m then
            r:= m;
            Cands:= subs(m=NULL,Cands);
         fi
       od;
       r
    end proc:
    A:= 1:
    for n from 2 to 10^3 do
      if LDS([A,1]) < LDS([A,2]) then A:= A,1 else A:= A,2 fi;
    od:
    seq(A[i],i=1..10^3); # Robert Israel, Jun 22 2015
  • Mathematica
    LDS[L_] := Module[{Cands, r, m}, Cands = Range[Floor[Length[L]/2]]; r = 0; For[m = 1, Length[Cands] > 0, m++, Cands = Select[Cands, L[[-m]] == L[[-# - m]]&]; If[Min[Cands] == m, r = m; Cands = ReplaceAll[Cands, m -> Nothing]]]; r]; A = {1}; For[n = 2, n <= 10^3, n++, If[LDS[Append[A, 1]] < LDS[Append[A, 2]], A = Append[A, 1], A = Append[A, 2]]];
    Table[A[[i]], {i, 1, 105}] (* Jean-François Alcover, Jul 17 2024, after Robert Israel *)
  • PARI
    {a(n)=local(A,t); if(n<2, n>0, A=[1]; for(i=2, n, forstep(j=i\2-1, 0, -1, for(k=1, j, if(A[i-j-k-1]!=A[i-k], next(2))); t=j; break); A=concat(A,[3-A[i-t-1]])); A[n])} /* Michael Somos, May 04 2006 */
    
  • Perl
    -le 'print$.=3**/(.*)(.)\1$/-$2for($)x99' # (Ton Hospel/Phil Carmody) [An example of Perl golfing: use as few (key)strokes as possible]
    
  • Perl
    =Comment on calculating this sequence and A006346 with Perl, from Hugo van der Sanden, Jun 23 2015:
    The approach I used was to take advantage of Perl's regular expression capabilities, coupled with the realization that Perl can optimize patterns anchored to the start far better than those anchored to the end - reversing the string to allow that gave a speedup of several orders of magnitude:
    =cut
    my $string = "";
    digit('1', 0);
    for (2 .. $limit) {
        my($repeat, $digit) = ($string =~ m{ ^ (.*) ([12]) \1 }x) or die;
        digit($digit eq '1' ? '2' : '1', length($repeat) + 1);
    }
    sub digit {
        my($digit, $repeat) = @_;
        $string = $digit . $string;
        # n A6345(n) A6346(n)
        printf "%s %s %s\n", length($string), $digit, $repeat;
    }
    # This takes about 45s to calculate 50000 terms of both sequences.

Extensions

More terms from Naohiro Nomoto, May 21 2001
Additional comments from Mitch Harris, Dec 31 2003