مارپیچی از اعداد

طی چند روز گذشته من در مورد سوال زیر در مورد 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 نیز شناخته می شود و رابطه مهیجی با اعداد اول دارد.

بازگشت