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.

A091579 Lengths of suffix blocks associated with A090822.

Original entry on oeis.org

1, 3, 1, 9, 4, 24, 1, 3, 1, 9, 4, 67, 1, 3, 1, 9, 4, 24, 1, 3, 1, 9, 4, 196, 3, 1, 9, 4, 24, 1, 3, 1, 9, 4, 68, 3, 1, 9, 4, 24, 1, 3, 1, 9, 4, 581, 3, 1, 9, 4, 25, 3, 1, 9, 4, 67, 1, 3, 1, 9, 4, 24, 1, 3, 1, 9, 4, 196, 3, 1, 9, 4, 24, 1, 3, 1, 9, 4, 68, 3, 1, 9, 4, 24, 1, 3, 1, 9, 4, 1731, 3, 1, 9, 4, 24
Offset: 1

Views

Author

N. J. A. Sloane, Mar 05 2004

Keywords

Comments

The suffix blocks are what is called "glue string" in the paper by Gijswijt et al (2007). Roughly speaking, these are the terms >= 2 appended before the sequence (A090822) goes on with a(n+1) = 1 followed by all other initial terms a(2..n), cf. Example. The concatenation of these glue strings yields A091787. - M. F. Hasler, Aug 08 2018

Examples

			From _M. F. Hasler_, Aug 09 2018: (Start)
In sequence A090822, after the initial (1, 1) follows the first suffix block or glue string (2) of length a(1) = 1. This is followed by A090822(4) = 1 which indicates that the suffix block has ended, and the whole sequence A090822(1..3) up to and including this suffix block is repeated: A090822(4..6) = A090822(1..3).
Then A090822 goes on with (2, 2, 3, 1, ...), which tells that the second suffix block is A090822(7..9) = (2, 2, 3) of length a(2) = 3, whereafter the sequence starts over again: A090822(10..18) = A090822(1..9). (End)
		

Crossrefs

Cf. A090822, A091587 (records). For a smoothed version see A091839.
Cf. A091787 for the concatenation of the glue strings.

Programs

  • Python
    # compute curling number of L
    def curl(L):
        n = len(L)
        m = 1 #max nr. of repetitions at the end
        k = 1 #length of repeating block
        while(k*(m+1) <= n):
            good = True
            i = 1
            while(i <= k and good):
                for t in range(1, m+1):
                    if L[-i-t*k] != L[-i]:
                        good = False
                i = i+1
            if good:
                m = m+1
            else:
                k = k+1
        return m
    # compute lengths of first n glue strings
    def A091579_list(n):
        Promote = [1] #Keep track of promoted elements
        L = [2]
        while len(Promote) <= n:
            c = curl(L)
            if c < 2:
                Promote = Promote+[len(L)+1]
                c = 2
            L = L+[c]
        return [Promote[i+1]-Promote[i] for i in range(n)]
    # Dion Gijswijt, Oct 08 2015