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

A364604 Lexicographically earliest sequence, where after every appearance, a term is banned from re-appearing for twice as long as last time; first appearance bans it for 1 term.

Original entry on oeis.org

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

Views

Author

Rok Cestnik, Jul 29 2023

Keywords

Examples

			a(n)   ban 1  2  3  4  5  6 ...
 1         |  |  |  |  |  |
 2         x  |  |  |  |  |
 1         |  x  |  |  |  |
 2         x  |  |  |  |  |
 3         x  x  |  |  |  |
 1         |  x  x  |  |  |
 2         x  |  |  |  |  |
 3         x  x  |  |  |  |
 4         x  x  x  |  |  |
 5         x  x  x  x  |  |
 1         |  x  |  |  x  |
 2         x  |  |  |  |  |
 3         x  x  |  |  |  |
 4         x  x  x  |  |  |
 5         x  x  x  x  |  |
 6         x  x  x  x  x  |
 4         x  x  x  |  x  x
 3         x  x  |  x  |  |
 5         x  x  x  x  |  |
 1         |  x  x  x  x  |
 .
 .
 .
		

Crossrefs

Programs

  • PARI
    A364604(N) = {my(a=vector(N),z=1); for(s=1,N, if(a[s],next); my(m=-1); for(i=s,N, if(!a[i], a[i]=z; i+=(1<<(m++)))); z++); a}
    
  • Python
    def A364604(N):
        a = [0]*N; z=s=0
        while(s
    				

A372704 a(1)=1; a(2)=2; for n>1, this is the lexicographically earliest sequence such that, following each occurrence of a(n), a(n) is banned for the next k terms, where k is the number of terms prior to a(n) that are not equal to a(n).

Original entry on oeis.org

1, 2, 1, 2, 1, 3, 2, 1, 4, 5, 6, 2, 1, 3, 7, 8, 9, 4, 10, 5, 2, 1, 6, 11, 12, 13, 3, 14, 15, 7, 16, 8, 17, 9, 4, 18, 19, 2, 1, 5, 10, 20, 21, 22, 6, 23, 24, 11, 25, 12, 26, 3, 13, 27, 28, 14, 29, 15, 7, 30, 31, 16, 8, 32, 33, 17, 9, 4, 34, 35, 2, 1, 18, 19, 36
Offset: 1

Views

Author

Neal Gersh Tolunsky, May 10 2024

Keywords

Comments

1 occurs immediately after its ban ends so that the i-th occurrence of a(n) = 1, for i >= 2, is at n = 2^(i-2) + i = A052968(i-1).
2 occurs immediately after its ban ends, since it turns out that's immediately before the ban on 1 ends, so the i-th occurrence of a(n) = 2 is at n = 2^(i-1) + i = A005126(i-1).
If the definition is changed so that k is the number of terms in the sequence thus far equal to a(n) (rather than unequal), this becomes A002260 without the initial 1.

Examples

			  a(n)   ban 1  2  3  4  5  6 ...
   1         |  |  |  |  |  |
   2         |  |  |  |  |  |
   1         |  x  |  |  |  |
   2         x  |  |  |  |  |
   1         |  x  |  |  |  |
   3         x  x  |  |  |  |
   2         x  |  x  |  |  |
   1         |  x  x  |  |  |
   4         x  x  x  |  |  |
   5         x  x  x  x  |  |
   6         x  x  x  x  x  |
   2         x  |  |  x  x  x
   1         |  x  |  x  x  x
   3         x  x  x  x  x  x
		

Crossrefs

Programs

  • Python
    from collections import Counter
    from itertools import count, islice
    def agen(): # generator of terms
        an, ban, occurs = 1, {1: 1}, Counter([1])
        for n in count(2):
            yield an
            an = next(k for k in count(1) if k not in ban)
            for k in list(ban):
                if ban[k] > 1: ban[k] -= 1
                else: del ban[k]
            ban[an] = n - 1 - occurs[an]
            occurs[an] += 1
    print(list(islice(agen(), 75))) # Michael S. Branicky, May 10 2024

Extensions

a(20) and beyond from Michael S. Branicky, May 10 2024
Showing 1-2 of 2 results.