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.

A091787 a(1) = 2. To get a(n+1), write the string a(1)a(2)...a(n) as xy^k for words x and y (where y has positive length) and k is maximized, i.e., k = the maximal number of repeating blocks at the end of the sequence so far. Then a(n+1) = max(k,2).

Original entry on oeis.org

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

Views

Author

N. J. A. Sloane, Mar 07 2004

Keywords

Comments

Here xy^k means the concatenation of the words x and k copies of y.
a(77709404388415370160829246932345692180) = 5 is the first time 5 appears.
This is also the concatenation of the glue strings of A090822, whose respective lengths are given in A091579. - M. F. Hasler, Oct 04 2018
This sequence is called the level-2 Gijswijt sequence.

Examples

			To get a(2): a(1) = 2 = (2)^1, so k = 1, a(2) = 2.
To get a(3): a(1)a(2) = 22 = (2)^2, so a(3) = k = 2.
To get a(4): a(1)a(2)a(3) = 222 = (2)^3, so a(3) = k = 3.
		

References

  • N. J. A. Sloane, Seven Staggering Sequences, in Homage to a Pied Puzzler, E. Pegg Jr., A. H. Schoen and T. Rodgers (editors), A. K. Peters, Wellesley, MA, 2009, pp. 93-110.

Crossrefs

Programs

  • PARI
    A091787(n, A=[])={while(#Ak||break; k=m); A=concat(A, k)); A} \\ M. F. Hasler, Oct 04 2018
    
  • Python
    from itertools import islice
    def c(w):
        for k in range(len(w), 0, -1):
            for l in range(1, len(w)//k + 1):
                if w[-k*l:] == w[-l:]*k: return k
    def agen(): # generator of terms
        alst, an = [], 2
        while True: yield an; alst.append(an); an = max(2, c(alst))
    print(list(islice(agen(), 99))) # Michael S. Branicky, Sep 10 2022