A274923 List of y-coordinates of point moving in counterclockwise square spiral.
0, 0, 1, 1, 1, 0, -1, -1, -1, -1, 0, 1, 2, 2, 2, 2, 2, 1, 0, -1, -2, -2, -2, -2, -2, -2, -1, 0, 1, 2, 3, 3, 3, 3, 3, 3, 3, 2, 1, 0, -1, -2, -3, -3, -3, -3, -3, -3, -3, -3, -2, -1, 0, 1, 2, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 2, 1, 0, -1, -2, -3, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3, -2, -1, 0
Offset: 1
References
- Ronald L. Graham, Donald E. Knuth, Oren Patashnik, Concrete Mathematics, Addison-Wesley, 1989, chapter 3, Integer Functions, exercise 40 page 99 and answer page 498.
Links
- Alois P. Heinz, Table of n, a(n) for n = 1..10000
- Visualization of spiral using Plot 2. - _Hugo Pfoertner_, May 29 2018
- Index entries for sequences related to coordinates of 2D curves
Crossrefs
Cf. A174344 (x-coordinates).
The (x,y) coordinates for a point sweeping a quadrant by antidiagonals are (A025581, A002262). - N. J. A. Sloane, Jul 17 2018
The diagonal rays of the square spiral (coordinates (+-n,+-n)) are: A002939 (2n(2n-1): 0, 2, 12, 30, ...), A016742 = (4n^2: 0, 4, 16, 36, ...), A002943 (2n(2n+1): 0, 6, 20, 42, ...), A033996 = (4n(n+1): 0, 8, 24, 48, ...). - M. F. Hasler, Oct 31 2019
Programs
-
Maple
fy:=proc(n) option remember; local k; if n=1 then 0 else k:=floor(sqrt(4*(n-2)+1)) mod 4; fy(n-1) - cos(k*Pi/2); fi; end; [seq(fy(n),n=1..120)]; # Based on Seppo Mustonen's formula in A174344.
-
Mathematica
a[n_] := a[n] = If[n == 0, 0, a[n-1] - Cos[Mod[Floor[Sqrt[4*(n-1)+1]], 4]* Pi/2]]; Table[a[n], {n, 0, 100}] (* Jean-François Alcover, Jun 11 2018, after Seppo Mustonen *)
-
PARI
L=1;d=1; for(r=1,9,d=-d;k=floor(r/2)*d;for(j=1,L++,print1(k,", "));forstep(j=k-d,-floor((r+1)/2)*d+d,-d,print1(j,", "))) \\ Hugo Pfoertner, Jul 28 2018
-
PARI
a(n) = n--; my(m=sqrtint(n), k=ceil(m/2)); n -= 4*k^2; if(n<0, if(n<-m, 3*k+n, k), if(n
Kevin Ryde, Sep 17 2019 -
PARI
apply( A274923(n)={my(m=sqrtint(n-=1), k=m\/2); if(m <= n -= 4*k^2, -k, n >= 0, k-n, n >= -m, k, 3*k+n)}, [1..99]) \\ M. F. Hasler, Oct 20 2019
-
Python
# Based on Kevin Ryde's PARI script import math def A274923(n): n -= 1 m = math.isqrt(n) k = math.ceil(m/2) n -= 4*k*k if n < 0: return 3*k+n if n < -m else k return k-n if n < m else -k # David Radcliffe, Aug 04 2025
Comments