OFFSET
0,3
COMMENTS
Similar to Recamán's sequence (A005132), but increases the difference to avoid duplicating values. Conjecture that every nonnegative integer occurs in this sequence. Evaluating through n=20000, the smallest number that has not occurred is 139.
The first 14 terms appear in the original OEIS logo. - Philippe Deléham, Mar 01 2013
This is very similar to A064389, and arguably just as nice. - Franklin T. Adams-Watters, Nov 11 2015
LINKS
Alois P. Heinz, Table of n, a(n) for n = 0..20000
FORMULA
a(n+1) = a(n)-d or a(n)+d, where a(n+1) must be positive and must not have occurred previously in the sequence; choose the smallest positive d such that this is possible where d is not |a(m+1)-a(m)| for any m < n; if both a(n)-d and a(n)+d have not occurred, choose a(n)-d.
MAPLE
N:= 1000: # get all terms up to the first member > N
a[0]:= 0:
davail:= [$1..N]:
B:= Vector(2*N):
for n from 1 do
found:= false;
for i from 1 to nops(davail) do
d:= davail[i];
an:= a[n-1]-d;
if an > 0 and B[an] = 0 then
a[n]:= an; found:= true; break
fi;
ap:= a[n-1]+d;
if B[ap] = 0 then
a[n]:= ap; found:= true; break
fi
od:
if (not found) or (a[n] > N) then break fi;
davail:= subsop(i=NULL, davail);
B[a[n]]:= 1;
od:
seq(a[i], i=0..n); # Robert Israel, Nov 17 2015
MATHEMATICA
M = 1000; (* get all terms up to the first member > M *)
a[0] = 0;
davail = Range[M];
B = Array[0&, 2M];
For[n = 1, True, n++,
found = False;
For[i = 1, i <= Length[davail], i++,
d = davail[[i]];
an = a[n-1] - d;
If[an > 0 && B[[an]] == 0,
a[n] = an; found = True; Break[]
];
ap = a[n-1] + d;
If[B[[ap]] == 0,
a[n] = ap; found = True; Break[]
]
];
If [Not @ found || (a[n] > M), Break[]];
davail = ReplacePart[davail, i -> Nothing];
B[[a[n]]] = 1;
];
Table[a[i], {i, 0, n}] (* Jean-François Alcover, Oct 24 2016, translated from Robert Israel's Maple code *)
CROSSREFS
KEYWORD
AUTHOR
Franklin T. Adams-Watters, Apr 14 2006
STATUS
approved