Un poco tarde para contestar, pero he creado un código y lo he implementado para ver los resultados:
0 3 2 3 2 3 4 5
3 4 1 2 3 4 3 4
2 1 4 3 2 3 4 5
3 2 3 2 3 4 3 4
2 3 2 3 4 3 4 5
3 4 3 4 3 4 5 4
4 3 4 3 4 5 4 5
5 4 5 4 5 4 5 6
El caballo está en la posición 0 del tablero de 8 por 8, y tarda como máximo 6 movimientos en llegar a cualquier parte (la esquina opuesta).
La simetría de un tablero de ajedrez es de 8 pliegues, ya que puede reflejarse a lo largo de cualquier diagonal a dos posiciones únicas, o girar 90 grados a cuatro posiciones únicas. Esto significa que hay 8 rebanadas del tablero. He decidido publicar las otras 9 posiciones que son distintas bajo esta transformación, para que el intercambio de pilas tenga la información real sobre esto para el futuro. Bajo estas permutaciones y simetrías, se puede averiguar cuál es la distancia del caballo a cualquier posición del tablero.
Son los siguientes:
Posiciones de borde:
3 0 3 2 3 2 3 4 2 3 0 3 2 3 2 3 3 2 3 0 3 2 3 2
2 3 2 1 2 3 4 3 1 2 3 2 1 2 3 4 2 1 2 3 2 1 2 3
1 2 1 4 3 2 3 4 4 1 2 1 4 3 2 3 3 4 1 2 1 4 3 2
2 3 2 3 2 3 4 3 3 2 3 2 3 2 3 4 2 3 2 3 2 3 2 3
3 2 3 2 3 4 3 4 2 3 2 3 2 3 4 3 3 2 3 2 3 2 3 4
4 3 4 3 4 3 4 5 3 4 3 4 3 4 3 4 4 3 4 3 4 3 4 3
3 4 3 4 3 4 5 4 4 3 4 3 4 3 4 5 3 4 3 4 3 4 3 4
4 5 4 5 4 5 4 5 5 4 5 4 5 4 5 4 4 5 4 5 4 5 4 5
Siguiente fila:
4 3 2 1 2 3 4 3 1 2 3 2 1 2 3 4 2 1 2 3 2 1 2 3
3 0 3 2 3 2 3 4 2 3 0 3 2 3 2 3 3 2 3 0 3 2 3 2
2 3 2 1 2 3 4 3 1 2 3 2 1 2 3 4 2 1 2 3 2 1 2 3
1 2 1 4 3 2 3 4 4 1 2 1 4 3 2 3 3 4 1 2 1 4 3 2
2 3 2 3 2 3 4 3 3 2 3 2 3 2 3 4 2 3 2 3 2 3 2 3
3 2 3 2 3 4 3 4 2 3 2 3 2 3 4 3 3 2 3 2 3 2 3 4
4 3 4 3 4 3 4 5 3 4 3 4 3 4 3 4 4 3 4 3 4 3 4 3
3 4 3 4 3 4 5 4 4 3 4 3 4 3 4 5 3 4 3 4 3 4 3 4
En el centro:
4 1 2 1 4 3 2 3 3 4 1 2 1 4 3 2 2 3 2 3 2 3 2 3
1 2 3 2 1 2 3 4 2 1 2 3 2 1 2 3 3 4 1 2 1 4 3 2
2 3 0 3 2 3 2 3 3 2 3 0 3 2 3 2 2 1 2 3 2 1 2 3
1 2 3 2 1 2 3 4 2 1 2 3 2 1 2 3 3 2 3 0 3 2 3 2
4 1 2 1 4 3 2 3 3 4 1 2 1 4 3 2 2 1 2 3 2 1 2 3
3 2 3 2 3 2 3 4 2 3 2 3 2 3 2 3 3 4 1 2 1 4 3 2
2 3 2 3 2 3 4 3 3 2 3 2 3 2 3 4 2 3 2 3 2 3 2 3
3 4 3 4 3 4 3 4 4 3 4 3 4 3 4 3 3 2 3 2 3 2 3 4
Lo siento si esto no es muy bonito. Todo lo que tienes que hacer para poner el caballo en otra posición es girar tu tablero o voltear los números a lo largo de una diagonal. Tenga en cuenta que, como la mayoría de los jugadores de ajedrez ya saben, los caballos son mucho más poderosos en el centro del tablero.
1 votos
Podría ser más fácil empezar con un tablero infinito y preguntar el número de movimientos $M(i,j)$ es decir, el número de movimientos a realizar $i$ posiciones a la derecha y $j$ posiciones arriba. Debería haber un enfoque de programación dinámica para este problema.
5 votos
Esto parece un problema clásico para Algoritmo de Dijkstra .
2 votos
Lo siguiente papel tiene una tabla en la segunda página que muestra el número de movimientos de caballo necesarios para llegar a las casillas. La otra parte de los enfoques es muy interesante (pero requiere algunas matemáticas avanzadas)
0 votos
codegolf.stackexchange.com/questions/2645/