طی چند روز گذشته من در مورد سوال زیر در مورد StackExchange در مورد مارپیچی از اعداد صحیح تحقیق کرده ام. ما به دنبال یک فرمول بسته برای مختصات عنصر \(n\) -th در مارپیچ عدد صحیح زیر هستیم ، که از مبدا به بیرون و بیشتر و بیشتر تا بی نهایت گسترش می یابد:
.. 9 10 11 12
23 8 1 2 13
22 7 0 3 14
21 6 5 4 15
20 19 18 17 16
ابتدا اعداد طبیعی را به گروههای زیر تقسیم می کنیم:
$$G_1 = \{ 1,...,8 \}\\G_2 = \{ 9, ..., 24 \}\\G_3 = \{ 25, ... 48 \}\\...\\G_k = \left\{ (2k-1)^2, (2k+1)^2 - 1 \right\}$$
زنگ میزنیم
$$a^2 = \left(\left \lfloor \left( \frac{\left \lfloor \sqrt{n} \right \rfloor + 1}{2} \right) \right \rfloor \cdot 2 - 1 \right)^2$$
شماره شروع در یک گروه.
در یک گروه چهار زیر گروه با اندازه مساوی وجود دارد \(G_1\) برای \(G_1\) \(g_1 = \{ 1,2 \}, g_2 = \{ 3,4 \}, g_3 = \{ 5,6 \}, g_4 = \{7,8\}\) ). اگر \(n\) از زیرگروه به زیر گروه دیگر تغییر یابد ، جهت مسیر مارپیچ (در مثال ما در جهت عقربه های ساعت) نیز همزمان تغییر می کند. با تقسیم موقعیت \(na^2\) درون یک گروه به تعداد عناصر یک زیر گروه جهت فعلی \( b \in \{0,1,2,3\} \) بدست می آوریم.:
$$b = \left \lfloor \frac{ n - a^2 }{ \text{abs}\left( a \right) + 1 } \right \rfloor$$
اکنون می توانیم اولین عنصر را در زیرگروه \(g_n\) با اضافه کردن چندین \(b\) از تعداد \(a+1\) عناصر درون یک گروه به شماره اولیه \(a^2\):
$$c = a^2 + b \cdot (a+1)$$
حال می توانیم با مشاهده ساده تعیین کنیم:
$$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)$$
چگونه می خواهیم \(f(n)\) در یک نمایش بسته و همچنین بدون تمایز موردی نشان دهیم. ما از تابع Signum استفاده می کنیم ، من روش کار را در اینجا شرح داده ام . بنابراین به عنوان تابعی از فرمول خالص \(n\) ، بدست می آوریم:
با کمک SVG.js ، می توانیم در این تجسم کوچک ببینیم که همه چیز واقعاً کار می کند:
See the Pen ulam spiral by David Vielhuber (@vielhuber) on CodePen.
مارپیچ به نام مارپیچ Ulam نیز شناخته می شود و رابطه مهیجی با اعداد اول دارد.