login
A324688
Starting at n, a(n) is the difference of the number of times we move away from zero from positive spots and the number of times we move away from zero from negative spots 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.
1
0, 0, -1, 0, -7, -6, 0, -78, -2, -1, 0, 3, -14, -13, -2, 0, 9, -54646, -3, -2, 8497, 0, -8, -5, -4, -172288, -3, -2, 0, 27, 1784552, 33920, 33921, 33922, 33923, -3, 0, 8, -3137, -3136, -3, -5, -4, -3, -82, 0, -15, -12, -11, -9, -8, -4, -7, -4, -3, 0, 36, 37
OFFSET
0,5
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 sgn(x):
if x:
return x//abs(x)
return 0
#Actual sequence
def a(n):
d = trip(n)
return sum(sgn(i) for i in d['flee'])
CROSSREFS
KEYWORD
sign
AUTHOR
David Nacin, Mar 10 2019
STATUS
approved