cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

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.

Original entry on oeis.org

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
Offset: 1

Views

Author

Alex Ratushnyak, Nov 19 2013

Keywords

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, ...

Crossrefs

Programs

  • Python
    import math
    def get_x_y(n):
      sr = math.isqrt(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(abs(x1-x0)+abs(y1-y0), end=', ')