%I #11 Aug 17 2018 11:02:00
%S 0,1,3,4,2,3,5,6,4,5,9,6,6,7,11,8,8,15,9,10,10,13,11,12,22,11,15,18,
%T 12,15,17,22,12,21,25,10,26,21,19,18,24,27,15,34,24,21,31,20,28,21,31,
%U 24,28,41,19,36,36,23,35,26,38,23,41,36,28,53,29,38,40,31,39
%N a(n) is the Manhattan distance between n and n(n+1)/2 in a square spiral of positive integers with 1 at the center.
%C Spiral begins:
%C .
%C 49 26--27--28--29--30--31
%C | | |
%C 48 25 10--11--12--13 32
%C | | | | |
%C 47 24 9 2---3 14 33
%C | | | | | | |
%C 46 23 8 1 4 15 34
%C | | | | | |
%C 45 22 7---6---5 16 35
%C | | | |
%C 44 21--20--19--18--17 36
%C | |
%C 43--42--41--40--39--38--37
%C .
%C Numbers n such that a(n)*2=n: 2, 6, 10, 12, 14, 16, 20, 24, 30, 80, 192, 198, 350, 524, 536, 548, 552, 560, 564, 576, 588, 594, 606, 618, 630, 1380, 1900, 4446, ...
%o (Python)
%o import math
%o def get_x_y(n):
%o sr = int(math.sqrt(n-1))
%o sr = sr-1+(sr&1)
%o rm = n-sr*sr
%o d = (sr+1)/2
%o if rm<=sr+1:
%o return -d+rm,d
%o if rm<=sr*2+2:
%o return d,d-(rm-(sr+1))
%o if rm<=sr*3+3:
%o return d-(rm-(sr*2+2)),-d
%o return -d,-d+rm-(sr*3+3)
%o for n in range(1,333):
%o x0,y0 = get_x_y(n)
%o x1,y1 = get_x_y(n*(n+1)/2)
%o print str(abs(x1-x0)+abs(y1-y0))+',',
%Y Cf. A000217, A214526, A232113, A232114.
%K nonn
%O 1,3
%A _Alex Ratushnyak_, Nov 19 2013