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.

A101274 a(1)=1; for n>1, a(n) is the smallest positive integer such that the set of all sums of adjacent elements up to and including a(n) contains no number more than once.

Original entry on oeis.org

1, 2, 4, 5, 8, 10, 14, 21, 15, 16, 26, 25, 34, 22, 48, 38, 71, 40, 74, 90, 28, 69, 113, 47, 94, 54, 46, 143, 153, 83, 128, 49, 249, 75, 133, 225, 125, 131, 270, 145, 230, 199, 237, 206, 201, 299, 136, 346, 72, 272, 120, 55, 453, 247, 376, 427, 124, 535, 87, 242, 431, 283, 227, 212, 940, 318, 387, 311, 391, 325
Offset: 1

Views

Author

David S. Newman, Dec 20 2004

Keywords

Comments

Does the sequence together with the sums of adjacent elements include all positive integers? Choosing starting values other than a(1)=1 gives other sequences. We could ask, for a given n, which such sequences have the smallest sum of a(k) from k=1 to n.
The first differences of A005282. [Zak Seidov, Nov 06 2010]

Examples

			a(8)=21 because the set of sums of adjacent elements to this point, call it s(7) is {1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,18,19,20,23,24,27,29,30,32,37,41,43,44}.
The first number missing from this list is 15, but a(8) cannot equal 15 because 15+14=29 and 29 is already in s(7). Similarly a(8) cannot be 16 because 16+14=30.
		

Crossrefs

Cf. A005282.

Programs

  • Mathematica
    t = {1}; sms = {2}; k = 1;
    Do[k++; While[Intersection[sms, k + t] != {}, k++]; sms = Join[sms, t + k, {2 k}]; AppendTo[t, k], {41}];
    Differences[t] (* Jean-François Alcover, Feb 13 2019, after T. D. Noe in A005282 *)
  • Python
    from itertools import count, islice
    def A101274_gen(): # generator of terms
        aset1, aset2, alist, n = {1}, set(), [1], 1
        for k in count(2):
            bset2 = {k<<1}
            if (k<<1) not in aset2:
                for d in aset1:
                    if (m:=d+k) in aset2:
                        break
                    bset2.add(m)
                else:
                    yield k-n
                    n = k
                    alist.append(k)
                    aset1.add(k)
                    aset2.update(bset2)
    A101274_list = list(islice(A101274_gen(),30)) # Chai Wah Wu, Sep 05 2023