login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

A324680
Starting at n, a(n) is the largest distance from zero among all positions from which a spot must be revisited on the next move, or zero if no such positions exist, according to the following rules. On the k-th step (k=1,2,3,...) move a distance of k in the direction of zero. If the number landed on has been landed on before, move a distance of k away.
2
0, 0, 0, 0, 0, 0, 0, 3442, 0, 0, 0, 27, 140, 139, 0, 0, 84, 3072845, 0, 0, 638385, 0, 0, 0, 0, 4869724, 0, 0, 0, 464, 43807680, 2117461, 2117462, 2117463, 2117464, 0, 0, 24, 696919, 696918, 179, 1, 0, 1, 1920, 0, 148, 86, 85, 84, 83, 190, 63, 0, 0, 0, 1107
OFFSET
0,8
EXAMPLE
For n=11, the points visited are 11, 10, 8, 5, 1, -4, 2, -5, 3, -6, 4, -7, -19, -32, -18, -3, 13, 30, 12, 31, 51, 72, 50, 27, 51, 26, 0. The only position from which we are forced to revisit a spot is 27, which forces a return to 51. Since this is the only time this happens it is also has the largest distance from zero, thus a(11)=27.
PROG
(Python)
#Sequences A324660-A324692 generated by manipulating this trip function
#spots - positions in order with possible repetition
#flee - positions from which we move away from zero with possible repetition
#stuck - positions from which we move to a spot already visited with possible repetition
def trip(n):
stucklist = list()
spotsvisited = [n]
leavingspots = list()
turn = 0
forbidden = {n}
while n != 0:
turn += 1
sign = n // abs(n)
st = sign * turn
if n - st not in forbidden:
n = n - st
else:
leavingspots.append(n)
if n + st in forbidden:
stucklist.append(n)
n = n + st
spotsvisited.append(n)
forbidden.add(n)
return {'stuck':stucklist, 'spots':spotsvisited,
'turns':turn, 'flee':leavingspots}
def maxorzero(x):
if x:
return max(x)
return 0
#Actual sequence
def a(n):
d=trip(n)
return maxorzero([abs(i) for i in d['stuck']])
CROSSREFS
KEYWORD
nonn
AUTHOR
David Nacin, Mar 10 2019
STATUS
approved