|
|
A232115
|
|
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.
|
|
3
|
|
|
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, 12, 15, 17, 22, 12, 21, 25, 10, 26, 21, 19, 18, 24, 27, 15, 34, 24, 21, 31, 20, 28, 21, 31, 24, 28, 41, 19, 36, 36, 23, 35, 26, 38, 23, 41, 36, 28, 53, 29, 38, 40, 31, 39
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,3
|
|
COMMENTS
|
Spiral begins:
.
49 26--27--28--29--30--31
| | |
48 25 10--11--12--13 32
| | | | |
47 24 9 2---3 14 33
| | | | | | |
46 23 8 1 4 15 34
| | | | | |
45 22 7---6---5 16 35
| | | |
44 21--20--19--18--17 36
| |
43--42--41--40--39--38--37
.
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, ...
|
|
LINKS
|
|
|
PROG
|
(Python)
import math
def get_x_y(n):
sr = int(math.sqrt(n-1))
sr = sr-1+(sr&1)
rm = n-sr*sr
d = (sr+1)/2
if rm<=sr+1:
return -d+rm, d
if rm<=sr*2+2:
return d, d-(rm-(sr+1))
if rm<=sr*3+3:
return d-(rm-(sr*2+2)), -d
return -d, -d+rm-(sr*3+3)
for n in range(1, 333):
x0, y0 = get_x_y(n)
x1, y1 = get_x_y(n*(n+1)/2)
print str(abs(x1-x0)+abs(y1-y0))+', ',
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|