Satu pusingan nombor

Sejak beberapa hari kebelakangan ini, saya telah meneliti soalan berikut di StackExchange mengenai pusingan bilangan bulat. Kami mencari formula tertutup untuk koordinat elemen \(n\) -dalam lingkaran integer berikut, yang berkembang dari asal ke luar dan lebih jauh dan seterusnya hingga tak terhingga:

..  9 10 11 12
23  8  1  2 13
22  7  0  3 14
21  6  5  4 15
20 19 18 17 16

Mula-mula kita bahagikan nombor semula jadi kepada kumpulan berikut:

$$G_1 = \{ 1,...,8 \}\\G_2 = \{ 9, ..., 24 \}\\G_3 = \{ 25, ... 48 \}\\...\\G_k = \left\{ (2k-1)^2, (2k+1)^2 - 1 \right\}$$

Kami panggil

$$a^2 = \left(\left \lfloor \left( \frac{\left \lfloor \sqrt{n} \right \rfloor + 1}{2} \right) \right \rfloor \cdot 2 - 1 \right)^2$$

nombor permulaan dalam kumpulan.

Dalam kumpulan terdapat empat subkumpulan dengan ukuran yang sama \(G_1\) Untuk \(G_1\) adalah \(g_1 = \{ 1,2 \}, g_2 = \{ 3,4 \}, g_3 = \{ 5,6 \}, g_4 = \{7,8\}\) ). Sekiranya \(n\) dari satu subkelompok ke subkelompok yang lain, arah pada jalur lingkaran (mengikut arah jam mengikut contoh kami) juga akan berubah pada masa yang sama. Kami mendapat arah semasa \( b \in \{0,1,2,3\} \) dengan membahagikan kedudukan \(na^2\) dalam kumpulan dengan bilangan elemen dalam subkumpulan:

$$b = \left \lfloor \frac{ n - a^2 }{ \text{abs}\left( a \right) + 1 } \right \rfloor$$

Sekarang kita dapat menentukan elemen pertama dalam subkumpulan \(g_n\) dengan menambahkan gandaan \(b\) nombor \(a+1\) elemen dalam kumpulan ke nombor awal \(a^2\):

$$c = a^2 + b \cdot (a+1)$$

Sekarang kita dapat menentukan dengan pemerhatian sederhana:

$$x_{right} = \left(n - c - \frac{ a + 1 }{2}+1\right),\, y_{right} = \left(\frac{ a + 1 }{2}\right) \\ x_{bottom} = \left(\frac{ a + 1 }{2}\right),\, y_{bottom} = (-1) \cdot \left( n - c - \frac{ a + 1 }{2}+1\right) \\ x_{left} = (-1) \cdot \left(n - c - \frac{ a + 1 }{2}+1\right),\, y_{left} = (-1) \cdot \left(\frac{ a + 1 }{2}\right) \\ x_{top} = (-1) \cdot \left(\frac{ a + 1 }{2}\right),\, y_{top} = \left( n - c - \frac{ a + 1 }{2}+1\right)$$

Kami mahu mewakili \(f(n)\) dalam perwakilan tertutup dan juga tanpa perbezaan kes. Kami menggunakan fungsi Signum, saya telah menerangkan prosedurnya di sini . Sehingga kita mendapat formula murni sebagai fungsi \(n\) , kita mendapat:

Dengan bantuan SVG.js , kita dapat melihat dalam visualisasi kecil ini bahawa semuanya benar-benar berfungsi:

See the Pen ulam spiral by David Vielhuber (@vielhuber) on CodePen.

Spiral juga dikenali sebagai spiral Ulam dan mempunyai hubungan menarik dengan nombor perdana.

Belakang