login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

A217292
Permutation of natural numbers arising from applying the walk of right triangular type-2 spiral (defined in A214251) to the data of square spiral (e.g. A214526).
0
1, 8, 9, 10, 2, 4, 16, 5, 6, 7, 22, 23, 24, 25, 26, 51, 27, 11, 3, 15, 35, 63, 36, 17, 18, 19, 20, 21, 44, 45, 46, 47, 48, 49, 50, 83, 124, 84, 52, 28, 12, 14, 34, 62, 98, 142, 99, 64, 37, 38, 39, 40, 41, 42, 43, 74, 75, 76, 77, 78, 79, 80, 81, 82, 123, 172, 229
OFFSET
1,2
PROG
(Python)
SIZE = 29 # must be 4k+1
grid = [0] * (SIZE*SIZE)
posX = posY = SIZE//2
grid[posY*SIZE+posX]=1
n = 2
def walk(stepX, stepY, chkX, chkY):
global posX, posY, n
while 1:
posX+=stepX
posY+=stepY
grid[posY*SIZE+posX]=n
n+=1
if grid[(posY+chkY)*SIZE+posX+chkX]==0:
return
while posX:
walk(0, -1, 1, 0) # up
walk(1, 0, 0, 1) # right
walk(0, 1, -1, 0) # down
walk(-1, 0, 0, -1) # left
import sys
grid2 = [0] * (SIZE*SIZE)
posX = posY = SIZE//2
grid2[posY*SIZE+posX]=1
def walk2(stepX, stepY, chkX, chkY):
global posX, posY
while 1:
a = grid[posY*SIZE+posX]
if a==0:
sys.exit(1)
print(a, end=', ')
posX+=stepX
posY+=stepY
grid2[posY*SIZE+posX]=1
if grid2[(posY+chkY)*SIZE+posX+chkX]==0:
return
while 1:
walk2(-1, 0, 0, -1) # left
walk2(0, -1, 1, 1) # up
if posY==0:
break
walk2( 1, 1, -1, 0) # right-down
CROSSREFS
KEYWORD
nonn
AUTHOR
Alex Ratushnyak, Sep 30 2012
STATUS
approved