A324662 Starting at n, a(n) is the difference of the number of left moves and the number of right moves 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.
0, 1, 2, 2, 4, 4, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 8, 6, 7, 7, 7, 9, 7, 7, 7, 7, 3, 7, 7, 7, 7, 8, 8, 8, 7, 7, 8, 9, 9, 9, 10, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12
Offset: 0
Keywords
Examples
For n=2, the points visited are 2,1,-1,-4,0 with the moves from 2 to 1, 1 to -1, and -1 to -4 being to the left, and the move from -4 to 0 being to the right, hence a(2) = 3 - 1 = 2.
Links
- David Nacin, a(n)/sqrt{n}
Programs
-
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): return x//abs(x) #Actual sequence def a(n): d = trip(n) return sum(sgn(d['spots'][i] - d['spots'][i+1]) for i in range(d['turns']))