login
A308081
Index positions of the points of a counterclockwise square spiral as described by A174344 and A274923 in a list of points with integer coordinates with primary sorting by radius and secondary sorting by polar angle as given by A305575 and A305576.
4
0, 1, 5, 2, 6, 3, 7, 4, 8, 20, 9, 13, 21, 14, 10, 15, 22, 16, 11, 17, 23, 18, 12, 19, 24, 44, 36, 25, 29, 37, 57, 38, 30, 26, 31, 39, 58, 40, 32, 27, 33, 41, 59, 42, 34, 28, 35, 43, 60, 80, 68, 56, 45, 49, 61, 70, 97, 71, 62, 50, 46, 51, 63, 73, 98, 74, 64
OFFSET
1,3
COMMENTS
The sequence is a permutation of the integers.
LINKS
PROG
(PARI) /* It is assumed that the files a305575 and a305576 contain the second column of the corresponding b-files omitting the initial 0 */
a305575=readvec(a305575); a305576=readvec(a305576);
a174344=vector(10000); L=0; d=1; n=0;
for(r=1, 100, d=-d; k=floor(r/2)*d; for(j=1, L++, a174344[n++]=k); forstep(j=k-d, -floor((r+1)/2)*d+d, -d, a174344[n++]=j));
a274923=vector(10100); L=1; d=1; n=0;
for(r=1, 100, d=-d; k=floor(r/2)*d; for(j=1, L++, a274923[n++]=k); forstep(j=k-d, -floor((r+1)/2)*d+d, -d, a274923[n++]=j));
findinring(i, j)={my(s=i*i+j*j); if(s==0, return(0), forstep(k=floor(Pi*(s+1))+sqrtint(s), 1, -1, if(i==a305575[k]&&j==a305576[k], return(k))))};
for(n=1, 67, print1(findinring(a174344[n], a274923[n]), ", "));
CROSSREFS
KEYWORD
nonn
AUTHOR
Hugo Pfoertner, May 11 2019
STATUS
approved