[go: up one dir, main page]

login
A324660
Starting at n, a(n) is the total number of moves made to the right 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 from zero instead.
33
0, 0, 1, 0, 10, 11, 0, 861, 4, 5, 0, 11, 59, 60, 5, 0, 57, 390898, 7, 8, 66444, 0, 22, 11, 12, 610392, 8, 9, 0, 211, 4434560, 266001, 266000, 266001, 266002, 9, 0, 43, 106674, 106673, 120, 12, 11, 12, 495, 0, 67, 50, 51, 36, 37, 100, 25, 12, 13, 0, 317, 316
OFFSET
0,5
EXAMPLE
For n=2, the points visited are 2,1,-1,-4,0 with the move from -4 to 0 being the only one to the right, hence a(2)=1.
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}
#Actual sequence
def a(n):
d=trip(n)
return sum(1 for i in range(d['turns']) if d['spots'][i+1] > d['spots'][i])
CROSSREFS
KEYWORD
nonn
AUTHOR
David Nacin, Mar 10 2019
STATUS
approved