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

A377351 Lexicographically earliest sequence of positive integers such that the means of consecutive terms are all distinct.

Original entry on oeis.org

1, 2, 4, 7, 5, 10, 12, 18, 13, 16, 28, 23, 14, 25, 48, 32, 17, 46, 30, 45, 67, 60, 27, 71, 39, 85, 68, 99, 78, 44, 102, 87, 126, 57, 118, 69, 121, 74, 125, 119, 112, 136, 107, 110, 170, 120, 175, 142, 194, 75, 222, 152, 164, 180, 177, 184, 188, 135, 255, 210
Offset: 1

Views

Author

Rémy Sigrist, Oct 26 2024

Keywords

Comments

In other words, for any distinct nonempty intervals t..u and v..w, Sum_{i = t..u} a(i)/(u-t+1) <> Sum_{j = v..w} a(j)/(w-v+1).
This sequence corresponds essentially to the first differences of A033808.
By necessity, all terms are distinct.

Examples

			The first terms, alongside the means of consecutive terms ending with a(n), are:
  n  a(n)  Corresponding means
  -  ----  ------------------------------------------
  1     1  1
  2     2  3/2, 2
  3     4  7/3, 3, 4
  4     7  7/2, 13/3, 11/2, 7
  5     5  19/5, 9/2, 16/3, 6, 5
  6    10  29/6, 28/5, 13/2, 22/3, 15/2, 10
  7    12  41/7, 20/3, 38/5, 17/2, 9, 11, 12
  8    18  59/8, 58/7, 28/3, 52/5, 45/4, 40/3, 15, 18
		

Crossrefs

Programs

  • Python
    from fractions import Fraction
    from itertools import count, islice
    def agen(): # generator of terms
        alst, means_seen = [1], {1}
        while True:
            yield alst[-1]
            for k in count(1):
                if k in means_seen: continue
                mk, failed, sk = {k}, False, k
                for j in range(1, len(alst)+1):
                    sk += alst[-j]
                    m = Fraction(sk, j+1)
                    if m in means_seen or m in mk: failed = True; break
                    mk.add(m)
                if not failed: break
            means_seen |= mk
            alst.append(k)
    print(list(islice(agen(), 60))) # Michael S. Branicky, Oct 26 2024, Oct 28 2024

Formula

a(n) = A033808(n) - A033808(n-1).
Showing 1-1 of 1 results.