Antecedentes
Sudoku es un rompecabezas de números donde, dada una cuadrícula dividida en cajas de tamaño , cada número de a debe aparecer exactamente una vez en cada fila, columna y caja.
En el juego de Ajedrez, el Rey puede moverse a cualquiera de (como máximo) 8 celdas adyacentes en un turno. "Adyacente" aquí significa horizontal, vertical o diagonalmente adyacente.
La gira del Rey es una analogía de la gira del Caballero; Es un camino (posiblemente abierto) que visita cada celda exactamente una vez en el tablero dado con los movimientos del Rey del Ajedrez.
Tarea
Considere una cuadrícula de Sudoku de 6 por 6:
654 | 321
123 | 654
----+----
462 | 135
315 | 246
----+----
536 | 412
241 | 563
y una gira del Rey (de 01
a 36
):
01 02 03 | 34 35 36
31 32 33 | 04 05 06
---------+---------
30 23 28 | 27 26 07
22 29 24 | 25 09 08
---------+---------
21 19 16 | 10 14 13
20 17 18 | 15 11 12
El recorrido forma el número de 36 dígitos 654654564463215641325365231214123321
.
Tomar un tour diferente del Rey da números más grandes; por ejemplo, puedo encontrar un camino que comience con el 65<6>56446556...
cual es definitivamente mayor que el anterior. Puedes cambiar el tablero de Sudoku para obtener números aún más altos:
... | ...
.6. | ...
----+----
..6 | ...
.5. | 6..
----+----
.45 | .6.
6.. | 5..
Este tablero incompleto proporciona la secuencia inicial de la 666655546...
cual es la secuencia óptima de 9 dígitos iniciales.
Su tarea es encontrar el número más grande para el Sudoku estándar de 9 por 9 con cajas de 3 por 3 , es decir
... | ... | ...
... | ... | ...
... | ... | ...
----+-----+----
... | ... | ...
... | ... | ...
... | ... | ...
----+-----+----
... | ... | ...
... | ... | ...
... | ... | ...
Tenga en cuenta que este desafío no es code-golf ; el objetivo es encontrar las soluciones en lugar de escribir un pequeño programa que teóricamente funcione.
Criterio de puntuación y ganador
El puntaje de una presentación es el número de 81 dígitos encontrado por su programa. La presentación con la puntuación más alta gana. Su programa también debe generar la cuadrícula de Sudoku y la gira del Rey en forma legible por humanos; inclúyalos en su envío.
Su programa puede generar múltiples resultados; tu puntaje es el máximo de ellos.
No hay límite de tiempo para su programa. Si su programa continúa ejecutándose y luego encuentra un número mayor, puede actualizar el puntaje del envío editando la publicación. Tiebreaker es el momento más temprano para lograr el puntaje, es decir, el tiempo de publicación (si aún no se ha editado) o el momento de la edición cuando se actualizó el puntaje (de lo contrario).
fuente
Respuestas:
Python + Z3 , 999899898789789787876789658767666545355432471632124566352413452143214125313214321, óptimo
Funciona en aproximadamente media hora, produciendo
Código
fuente