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

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

بازگشت