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.

A309503 Iteratively replace the sum of two sequentially chosen consecutive integers with those integers.

Original entry on oeis.org

1, 2, 1, 2, 4, 5, 2, 4, 5, 2, 8, 4, 5, 2, 8, 11, 8, 4, 13, 14, 15, 16, 4, 13, 4, 14, 8, 11, 16, 4, 8, 13, 22, 23, 24, 4, 8, 13, 4, 14, 8, 13, 14, 24, 4, 14, 15, 30, 15, 16, 24, 8, 33, 34, 13, 22, 36, 37, 14, 24, 8, 13, 4, 14, 24, 16, 41, 42, 8, 13, 22, 44
Offset: 1

Views

Author

Matthew Malone, Aug 05 2019

Keywords

Examples

			A_0 = {1,2,3,4,5,...}.
A_0(0) + A_0(1) = 1 + 2 = 3, which is found after A_0(1), so A_1 = {1,2,1,2,4,5,...}.
A_1(1) + A_1(2) = 2 + 1 = 3, which is *not* found after A_1(2), so A_2 = A_1.
A_2(2) + A_2(3) = 1 + 2 = 3, A_3 = A_2.
A_3(3) + A_3(4) = 2 + 4 = 6, A_4 = {1,2,1,2,4,5,2,4,7,8,9,10,...}.
A_4(4) + A_4(5) = 4 + 5 = 9, A_5 = {1,2,1,2,4,5,2,4,7,8,4,5,10,...}.
		

Crossrefs

This sequence is similar to A309435 except it uses addition instead of multiplication.

Programs

  • Kotlin
    fun generate(len: Int): List {
        fun gen_inner(len: Int, level: Int): List {
            if (level < 1) return (1..len).toList()
            val prev = gen_inner(len, level - 1)
            if (level == len) return prev.take(len)
            val (a, b) = prev[level - 1] to prev[level]
            return if (prev.drop(level + 1).contains(a+b)) {
                prev.indexOfFirst { it == a+b }.let { idx ->
                    prev.take(idx) + a + b + prev.drop(idx + 1)
                }
            } else prev
        }
        return gen_inner(len, len)
    }
    
  • Mathematica
    T = Range[100]; Do[s = T[[i]] + T[[i + 1]]; Do[If[T[[j]] == s, T = Join[ T[[;; j-1]], {T[[i]], T[[i+1]]}, T[[j+1 ;;]]]; Break[]], {j, i+2, Length@ T}], {i, Length@T}]; T (* Giovanni Resta, Sep 20 2019 *)
  • PARI
    a = vector(92, k, k);
    for (n=1, #a-1, s=a[n]+a[n+1]; print1 (a[n] ", "); for (k=n+2, #a - 1, if (a[k]==s, a=concat([a[1..k-1], a[n..n+1], a[k+1..#a]]); break)))

Formula

To generate the sequence, start with the integers, A_0={1,2,3,4,5,...}. To generate A_{n+1} calculate x = A_n(n) + A_n(n+1). Replace the next instance of x in A_n (after A_n(n+1)) with A_n(n), A_n(n+1). The limit of this process gives the sequence.
Showing 1-1 of 1 results.