ចាប់កង្កែប

កង្កែបលោតចុះឡើងនៅលើខ្សែរលេខហើយអ្នកព្យាយាមចាប់វា។ លោតនិងចាប់តែងតែឆ្លាស់គ្នា។ កង្កែបចាប់ផ្តើមនៅទីតាំង \(s \in \mathbb{Z}\) ហើយរាល់ការផ្លាស់ប្តូរវាលោតចំងាយ \(z \in \mathbb{Z}\) (ប្រសិនបើ \(z>0\) វាលោត ទៅខាងស្តាំបើមិនដូច្នោះទេបើទៅខាងឆ្វេង) ។ \(z\) គឺដូចគ្នាសម្រាប់រាល់ការលោត។ ការផ្តិតយករូបភាពរួមមានការបញ្ជាក់ទីតាំងចំនួនគត់។ អ្នកណាម្នាក់មិនដឹងទាំង \(z\) ក៏មិនមែន \(s\) ដែរ។ យើងបង្ហាញថាមានវិធីមួយដែលតែងតែចាប់កង្កែប។


ដំបូង \(a_1 = s\) និង \(a_{n+1} = a_n + z = s + n \cdot z\) ជាមួយ \(s,z \in \mathbb{Z}\)

យើងជ្រើសរើសឥឡូវនេះ 

$$h:\mathbb{N} \to \mathbb{Z}^2: h(2^k r) = \left ( (-1)^{k+1} \left \lfloor \frac{k+1}{2} \right \rfloor, (-1)^{\frac{r+1}{2}} \left \lfloor \frac{r+1}{4} \right \rfloor \right ) $$

ជាមុខងារដែលកំណត់ (យ៉ាងពិតប្រាកដ) ចំនួន Tu នៃចំនួនទាំងមូលទៅរាល់លេខធម្មជាតិ។ ជម្រើសនៃមុខងារនេះគឺតាមរយៈអនុគមន៍ \(f(n) = (-1)^n \left \lfloor \frac{n}{2} \right \rfloor\) , \(\mathbb{N}\) នៅលើ \(\mathbb{Z}\) និង \(g(2^kr) = (k+1, \frac{r+1}{2})\) ដែល \(\mathbb{N}\) \(\mathbb{N}^2\) ផែនទីជម្រុញលើកទឹកចិត្ត។

ឥលូវនេះយើងបង្ហាញពីភាពលេចធ្លោរបស់ \(h\) ( \(h\) ក៏ជាការចាក់បញ្ចូលដែរប៉ុន្តែយើងមិនត្រូវការទ្រព្យសម្បត្តិនេះទេ) ។

តោះ \((x,y) = (2^{k_1} r_1, 2^{k_2} r_2) \in\mathbb{Z}^2\) ។ ប៉ុន្តែ​បន្ទាប់មក

$$h \left ( 2^{2 \cdot 2^{k_1} r_1 - 1} \cdot (4 \cdot 2^{k_2} r_2 - 1) \right ) = (2^{k_1} r_1, 2^{k_2} r_2) = (x,y).$$

ដូច្នេះ: \(\forall (s,z) \in \mathbb{Z}^2 \, \exists \, m \in \mathbb{N}\) ជាមួយ \(h(m) = (x_m,y_m) = (s, z)\)

ឧទាហរណ៍ប្រសិនបើវាជាវេនរបស់យើងដើម្បីផ្លាស់ទីនៅ \(n = 88\) យើងគណនា \(h(88)=(2,3)\) ហើយជ្រើសរើសយក \(2 + 88 \cdot 3 = 266\) ជាទីតាំង។

បន្ទាប់មកបន្ទាប់ពី \(m\) ផ្លាស់ប្តូរដោយ \(x_m + m \cdot y_m = s + m \cdot z = a_m\) ជម្រើសនឹងធ្លាក់លើកង្កែប។

បន្ថែមលើ \(h\) មុខងារជាច្រើនទៀតដូចជា មុខងារផ្គូរផ្គងរបស់ខនន័រ រឺក៏ វង់ប៊ីចេង អាចធ្វើបាន។

នេះគឺជាការអនុវត្តសាមញ្ញមួយនៅក្នុង JavaScript:

See the Pen catch the frog by David Vielhuber (@vielhuber) on CodePen.

ថយក្រោយ