OFFSET
0,2
COMMENTS
As in Recamán's sequence, terms are repeated, the first being 18 = a(7) = a(11).
More generally, for k >= 0, a_k(0) = 0, and for n > 0, a_k(n) = a_k(n-1) - (n+k) if positive and not already in the sequence, otherwise a_k(n) = a_k(n-1) + (n+k).
For k = 0, this is Recamán's sequence A005132.
LINKS
Freddy Barrera, Table of n, a(n) for n = 0..10000
Freddy Barrera, Line plot of the first 1000 terms.
Freddy Barrera, Scatter plot of the first 1000 terms.
Freddy Barrera, Line plot of the first 1000 terms when k = 0, 1, 2, ..., 9
Freddy Barrera, Scatter plot of the first 1000 terms when k = 0, 1, 2, ..., 9
MATHEMATICA
f[s_List] := Block[{a = s[[-1]], len = Length@ s}, Append[s, If[a > len + 1 && ! MemberQ[s, a - len - 2], a - len - 2, a + len + 2]]]; Nest[f, {0}, 70] (* Robert G. Wilson v, Sep 08 2015 *)
PROG
(Python)
def sequence(n, k):
"""For n > 0 and k >= 0, generates the first n terms of the sequence"""
A, a = {0}, 0
yield a
for n in range(1, n + 1):
a = a - (n + k)
if a > 0 and a not in A:
A.add(a)
yield a
else:
a = a + 2 * (n + k)
A.add(a)
yield a
# List of the first 1000 terms of the sequence with k = 2.
list(sequence(1000, 2))
CROSSREFS
KEYWORD
nonn
AUTHOR
Freddy Barrera, Aug 24 2015
STATUS
approved