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-5 of 5 results.

A366631 Lexicographically earliest sequence such that each set of numbers enclosed by a pair of equal terms, excluding the endpoints, is distinct.

Original entry on oeis.org

1, 1, 2, 1, 2, 3, 2, 4, 2, 3, 4, 5, 3, 6, 3, 5, 6, 7, 3, 8, 4, 5, 7, 8, 7, 8, 9, 4, 7, 9, 10, 4, 9, 10, 11, 4, 10, 12, 4, 11, 13, 4, 12, 13, 12, 13, 14, 4, 15, 4, 14, 15, 16, 4, 17, 6, 8, 10, 14, 16, 17, 16, 17, 18, 9, 15, 17, 18, 19, 11, 16, 19, 20, 18, 19
Offset: 1

Views

Author

Neal Gersh Tolunsky, Oct 14 2023

Keywords

Comments

The word 'set' means that every element is unique and order is irrelevant. {2,3}, for example, is equivalent to {3,2,2} and thus both could never appear in the sequence.
Two consecutive equal values enclose the empty set {}, and thus after [a(1), a(2)] = [1, 1] no consecutive equal values will occur again.
Note that we are considering sets between every pair of equal values, not just those that appear consecutively. For example, [2,1,2,3,2] encloses a set, which is {1,2,3}, as well as [2,3,2], which encloses {3}.
It appears that for n >= 21510, a(n + 17796) = a(n) + 2614 (found by Rémy Sigrist). If this linear recurrence is true, every number appears finitely many times.
A value k is banned after all the values in a set enclosed by a(i1) = a(i2) = k, with i1 < i2, and k itself have reoccurred in the sequence after a(i2). Suppose, for example, after the set S1 enclosed by a(i1) and a(i2) every element in S1 has appeared and also a(i3) = k, and then we had a(i4) = k. Then we would have a new set S2 enclosed by a(i2) and a(i4) that is a superset of S1 U {k}. This would contradict the sequence's definition since the set S2 enclosed by a(i2) and a(i4) is identical to the set S3 enclosed by a(i1) and a(i4) because S1 U {a(i2)} adds no new elements.
Assuming the linear recurrence above is true, the number 526 occurs a record number of 44 times in the sequence and it does not occur again after the linear recurrence begins. The same is true of three other values which occur 41, 42, and 43 times in the sequence.
For n > 2, a new value is always followed by the smallest number that has not yet been banned and is distinct from the previous number (i.e. does not form a null set).
If the definition is changed so that endpoints are included, this becomes A008619.

Examples

			a(2)=1, establishing the empty set, [1,1] -> {}.
a(4)=1, creating the sets [1,2,1] -> {2} and [1,1,2,1] -> {1,2}, which are distinct from any set that has appeared thus far. Note that 1 is now permanently banned since the next 1 would have to enclose the same set with a(1) as it would with a(2).
a(8)=4: a(8) cannot be 1 since 1 has been banned. 2 would form the empty set with a(7)=2. a(8) cannot be 3 since this would form the set [3,2,3] -> {2}, which already occurred as [1,2,1] -> {2}. a(8)=4 because 4 is a first occurrence and thus forms no sets.
For another example of a banned number, see the last occurrence of 2, which is a(9)=2. a(10) cannot be 2 since this would form the empty set. At a(11), the value 2 is banned forever since any further 2 would form the same set of numbers with a(7)=2 as with a(5)=2. This is because a later term paired with a(5)=2 would only add the values a(7)=2 and a(6)=3, in comparison to a pairing with a(7)=2, which already encloses a(9)=2 and a(10)=3.
		

Crossrefs

Programs

  • PARI
    See Links section.
    
  • Python
    from itertools import islice
    def agen(): # generator of terms
        m, a = set(), []
        while True:
            an, allnew = 0, False
            while not allnew:
                allnew, an, mn = True, an+1, set()
                for i in range(len(a)):
                    if an == a[i]:
                        t = tuple(sorted(set(a[i+1:])))
                        if t in m or t in mn: allnew = False; break
                        mn.add(t)
            yield an; a.append(an); m |= mn
    print(list(islice(agen(), 75))) # Michael S. Branicky, Jan 15 2024

Extensions

More terms from Rémy Sigrist, Oct 15 2023
Edited by Peter Munn, Dec 05 2023

A366624 Lexicographically earliest sequence of positive integers such that each subsequence enclosed by two equal terms, not including the endpoints, is distinct.

Original entry on oeis.org

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

Views

Author

Samuel Harkness, Oct 14 2023

Keywords

Comments

Every positive integer occurs infinitely many times in the sequence.
The subsequence between any two equal terms is unique. For example, consecutive values "A B A" prevents "C B C" because the subsequence "B" would be repeated between equal terms.
Two consecutive values create the empty subsequence, for this reason after {a(1), a(2)} = {1, 1}, no consecutive values will ever occur again.
A new value is always followed by 1.

Examples

			For a(9), we first try 1. If a(9) were 1, {a(8)} = {2} would be bounded by a(7) = a(9) = 1, but {2} is already bounded by a(2) = a(4) = 1.
Next, try 2. Note this would create consecutive values at {a(8), a(9)}, enclosing the empty subsequence, but this already occurred at {a(1), a(2)}.
Next, try 3. If a(9) were 3, {a(7), a(8)} = {1, 2} would be bounded by a(6) = a(9) = 3, but {1, 2} is already bounded by a(1) = a(4) = 1.
Next, try 4. 4 has yet to appear, so a(9) = 4.
		

Crossrefs

Cf. A366625 (with distinct multisets), A366631 (with distinct sets), A366493 (including endpoints), A330896, A366691.

Programs

  • C
    /* See links */
  • MATLAB
    See Links section.
    
  • Python
    from itertools import islice
    def agen(): # generator of terms
        m, a = set(), []
        while True:
            an, allnew = 0, False
            while not allnew:
                allnew, an, mn = True, an+1, set()
                for i in range(len(a)):
                    if an == a[i]:
                        t = tuple(a[i+1:])
                        if t in m or t in mn: allnew = False; break
                        mn.add(t)
            yield an; a.append(an); m |= mn
    print(list(islice(agen(), 87))) # Michael S. Branicky, Jan 15 2024
    

A370264 Lexicographically earliest sequence such that each subsequence enclosed by a pair of equal values, including the endpoints, has a unique sum.

Original entry on oeis.org

1, 1, 2, 1, 3, 2, 1, 3, 3, 4, 2, 1, 3, 5, 4, 2, 6, 7, 1, 3, 5, 4, 7, 6, 2, 8, 1, 5, 6, 9, 9, 3, 1, 10, 2, 8, 4, 1, 10, 6, 9, 3, 2, 5, 11, 12, 4, 3, 10, 7, 8, 2, 13, 11, 12, 4, 13, 1, 14, 3, 9, 15, 5, 6, 7, 14, 16, 6, 2, 4, 8, 12, 3, 9, 10, 11, 5, 7, 13, 1, 14
Offset: 1

Views

Author

Neal Gersh Tolunsky, Feb 13 2024

Keywords

Comments

Note that we are considering the sums of the terms between every pair of equal values, not just those that appear consecutively.

Examples

			a(2)=1 creates the pair [a(1), a(2)] = [1, 1], which gives the unique sum of 2.
a(4)=1 creates two unique sums: [1,2,1] = sum of 4 and [1,1,2,1] = sum of 5.
a(8)=3 creates one unique sum: [3,2,1,3] = sum of 9.
		

Crossrefs

Cf. A370264 (excluding endpoints), A366493, A366624, A366631, A366625.

Programs

  • Python
    from itertools import islice
    def agen(): # generator of terms
        s, a = set(), []
        while True:
            an, allnew = 0, False
            while not allnew:
                allnew, an, sn = True, an+1, set()
                for i in range(len(a)):
                    if an == a[i]:
                        t = sum(a[i+1:]) + 2*an
                        if t in s or t in sn: allnew = False; break
                        sn.add(t)
            yield an; a.append(an); s |= sn
    print(list(islice(agen(), 81))) # Michael S. Branicky, Feb 14 2024

Extensions

a(16) and beyond from Michael S. Branicky, Feb 14 2024

A370263 Lexicographically earliest sequence such that each subsequence enclosed by a pair of equal values, excluding the endpoints, has a unique sum.

Original entry on oeis.org

1, 1, 2, 1, 2, 3, 1, 2, 4, 1, 5, 3, 6, 1, 2, 4, 7, 2, 3, 5, 6, 4, 5, 7, 8, 1, 3, 5, 2, 6, 4, 9, 10, 7, 1, 3, 8, 11, 4, 2, 8, 9, 12, 1, 3, 6, 4, 7, 11, 10, 2, 5, 8, 13, 14, 2, 9, 15, 7, 1, 3, 4, 11, 13, 12, 16, 1, 5, 14, 6, 8, 10, 9, 4, 17, 2, 10, 3, 18, 11, 16
Offset: 1

Views

Author

Neal Gersh Tolunsky, Feb 13 2024

Keywords

Comments

Two consecutive equal values enclose no terms, which have a sum of 0, and thus after [a(1), a(2)] = [1, 1] no consecutive equal values will occur again.
Note that we are considering the sums of the terms between every pair of equal values, not just those that appear consecutively.

Examples

			a(2)=1 creates the pair [a(1), a(2)] = [1, 1], which gives the unique sum of 0.
a(4)=1 creates two unique sums: [1,2,1] -> [2] = sum of 2 and [1,1,2,1] -> [1,2] = sum of 3.
a(8)=2 creates two unique sums: [2,3,1,2] -> [3,1] = sum of 4 and [2,1,2,3,1,2] -> [1,2,3,1] = sum of 7.
		

Crossrefs

Cf. A370264 (including endpoints), A366624, A366493, A366631, A366625.

Programs

  • Python
    from itertools import islice
    def agen(): # generator of terms
        s, a = set(), []
        while True:
            an, allnew = 0, False
            while not allnew:
                allnew, an, sn = True, an+1, set()
                for i in range(len(a)):
                    if an == a[i]:
                        t = sum(a[i+1:])
                        if t in s or t in sn: allnew = False; break
                        sn.add(t)
            yield an; a.append(an); s |= sn
    print(list(islice(agen(), 81))) # Michael S. Branicky, Feb 14 2024

Extensions

a(16) and beyond from Michael S. Branicky, Feb 14 2024

A378776 Lexicographically earliest sequence of positive integers such that each multiset enclosed by a pair of equal terms, including the endpoints, is distinct.

Original entry on oeis.org

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

Views

Author

Neal Gersh Tolunsky, Dec 06 2024

Keywords

Comments

Note that we are considering multisets between every pair of equal values, not just those that appear consecutively.
Each positive integer occurs infinitely many times.
A new value is always followed by 1.
First differs from A366493 at a(19).

Examples

			a(19) = 3: a(19) cannot be 1 because then a(15..19) = (1, 2, 3, 2, 1) would be the same multiset as a(6..10) = (2, 1, 3, 1, 2). a(19) cannot be 2 since this would make a(18-19) = (2,2), which is the same multiset as a(5-6). a(19) can be 3 since this does not create any repeat multiset.
		

Crossrefs

Cf. A366625.

Programs

  • Python
    from itertools import islice
    def agen(): # generator of terms
        m, a = set(), []
        while True:
            an, allnew = 0, False
            while not allnew:
                allnew, an, mn = True, an+1, set()
                for i in range(len(a)):
                    if an == a[i]:
                        t = tuple(sorted(a[i:]+[an]))
                        if t in m or t in mn: allnew = False; break
                        mn.add(t)
            yield an; a.append(an); m |= mn
    print(list(islice(agen(), 88))) # Michael S. Branicky, Dec 06 2024
Showing 1-5 of 5 results.