%I #8 Mar 11 2019 20:46:08
%S 0,0,0,0,0,0,0,-21,0,0,0,1,-5,-5,0,0,3,-7429,0,0,1852,0,0,0,0,-28253,
%T 0,0,0,3,267870,6225,6226,6227,6228,0,0,-2,-598,-597,2,-1,0,1,-9,0,-2,
%U -2,-2,-3,-3,0,-2,0,0,0,8,8,8,-6462,-6461,-6460,-6459,-6458
%N Starting at n, a(n) is the difference of the number of times we revisit spots coming from positive spots and the number of times we revisit spots coming 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.
%H David Nacin, <a href="/A324685/a324685.png">A324685</a>
%H David Nacin, <a href="/A324685/a324685_1.png">A324685(n)/A228474(n)</a>
%o (Python)
%o #Sequences A324660-A324692 generated by manipulating this trip function
%o #spots - positions in order with possible repetition
%o #flee - positions from which we move away from zero with possible repetition
%o #stuck - positions from which we move to a spot already visited with possible repetition
%o def trip(n):
%o stucklist = list()
%o spotsvisited = [n]
%o leavingspots = list()
%o turn = 0
%o forbidden = {n}
%o while n != 0:
%o turn += 1
%o sign = n // abs(n)
%o st = sign * turn
%o if n - st not in forbidden:
%o n = n - st
%o else:
%o leavingspots.append(n)
%o if n + st in forbidden:
%o stucklist.append(n)
%o n = n + st
%o spotsvisited.append(n)
%o forbidden.add(n)
%o return {'stuck':stucklist, 'spots':spotsvisited,
%o 'turns':turn, 'flee':leavingspots}
%o def sgn(x):
%o if x:
%o return x//abs(x)
%o return 0
%o #Actual sequence
%o def a(n):
%o d = trip(n)
%o return sum(sgn(i) for i in d['stuck'])
%Y Cf. A228474, A324660-A324692. Equals A324684-A324683.
%K sign
%O 0,8
%A _David Nacin_, Mar 10 2019