原点处有一匹马,它第一步可以跳到 (±1,±2),(±2,±1) 这八个点中的任一点,问:此马跳到整点 P(m,n) 的最少步数是多少.
分析与解 考虑到坐标系的对称性,不妨设m⩾n⩾0.定义两个整点A(x1,y1),B(x2,y2)的距离AB=|x1−x2|+|y1−y2|.思考如何用最小步数将马从P(m,n)跳回原点.
情形一 m=2n.
由于每次移动到原点的距离最多减少3,因此至少需要m+n3步,每一步都取(−2,−1)即可.
情形二 n⩽m<2n.
先利用m−n次(−2,−1)移动到(2n−m,2n−m).此时
(1) 若2n−m是3的倍数,那么再经过2n−m3次(−2,−1)+(−1,−2)就可以移动到原点,此时最少步数是m+n3.
(2) 若2n−m模3余1,那么经过[2n−m3]次(−2,−1)+(−1,−2)后到达(1,1),再通过2次移动即可回到原点,此时最小步数是[m+n3]+2.
(3) 若2n−m模3余2,此时由于(2,2)回到原点需要4步,因此除了(m,n)=(2,2)的情形之外,可以考虑回退一步后通过3次移动回到原点(比如退回到(4,3),再通过3次移动(4,3)−(3,1)−(2,−1)−(0,0)到达原点),此时最小步数为[m+n3]+2.
情形三 m>2n.
先利用n次(−2,−1)从(m,n)移动到(m−2n,0).此时
(1) 若m−2n是4的倍数,那么经过m−2n2次(−2,−1)+(−2,1)就可以移动到原点,此时最小步数为m2.
(2) 若m−2n模4余1,此时由于(1,0)回到原点需要3步,因此除了(m,n)=(1,0)的情形外,可以考虑回退一步后通过2次移动回到原点,此时最小步数为[m2]+1.
(3) 若m−2n模4余2,此时通过[m−2n2]−1次移动后到达(2,0),再通过2次移动回到原点,此时最小步数为[m2]+1.
(4) 若m−2n模4余3,此时通过[m−2n2]−1次移动后到达(3,0),再通过3次移动回到原点,此时最小步数为[m2]+2.
综上所述,此马跳到整点P(m,n)的最小步数可以按以下方式计算.将max看成新的m,将\min\{|m|,|n|\}看成新的n.
规则一 若(m,n)=(1,0),则最小步数为3;若(m,n)=(2,2),则最小步数为4.
规则二 若m\leqslant 2n且m\neq 1,则\begin{cases} \dfrac{m+n}3,&3\mid (m+n)\\ \left[\dfrac{m+n}3\right]+2,&3\nmid (m+n).\end{cases}
规则三 若m>2n且m\neq 1,则\begin{cases} \dfrac m2,&m-2n \equiv 0\pmod{4},\\ \dfrac{m+1}2, &m-2n \equiv 1\pmod{4},\\ \dfrac{m+2}2,&m-2n \equiv 2\pmod{4},\\ \dfrac{m+3}2,&m-2n \equiv 3\pmod{4}.\end{cases}