Dadas dos plazas en un 8×8 tablero de ajedrez, ¿cómo podemos determinar el número mínimo de movimientos necesarios por un caballero para llegar a un cuadrado a partir de la otra?
Respuesta
¿Demasiados anuncios?Si estaban pensando en un infinito tablero de ajedrez, usted puede obtener una solución como (algo complicado) de la fórmula, pero en un número finito de la junta de la restricción de los bordes (y especialmente las esquinas) no afectará las cosas. Obviamente, usted puede dibujar mapas:
Y allí se puede ver que de la esquina de la posición de el caballero significa que es muy lento para llegar a su diagonal plaza vecina, mientras que con una junta de caballero:
en diagonal al lado plazas se alcanza más rápidamente.
Pensamiento adicional:
Fuera de la $5\times 5$ cuadrado centrado en el caballero, el paso de distancia patrón se convierte en simple. Entonces, si usted encuentra $\Delta x, \Delta y$ (sin firmar), calcular el máximo de $\left ( \frac{\Delta x}{2},\frac{\Delta y}{2},\frac{\Delta x+\Delta y}{3} \right )$ y redondee al entero más cercano. Llamar a esto $m'$. Ahora calcular la cuenta de la jugada $m$ como sigue: $$ m=m'+((m'+\Delta x+\Delta y) \bmod 2) $$ Para manejar cerca de plazas (en una junta de al menos $5\times 5$) podemos enumerar las excepciones: $$ \begin{align} \Delta x =\Delta y =2 &\implies m=4 \\ \Delta x+\Delta y =1 &\implies m=3 \\ \text{For a knight in a corner only, }\Delta x=\Delta y =1 &\implies m=4 \hspace{3in} \end{align}$$