Contexte
Le Sudoku est un puzzle numérique où, étant donné une grille divisée en boîtes de taille , chaque nombre de à doit apparaître exactement une fois dans chaque ligne, colonne et boîte.
Dans le jeu d'échecs, le roi peut se déplacer vers n'importe laquelle (au plus) des 8 cellules adjacentes à la fois. "Adjacent" signifie ici horizontalement, verticalement ou diagonalement adjacent.
La tournée du roi est une analogie avec la tournée du chevalier; c'est un chemin (éventuellement ouvert) qui visite chaque cellule exactement une fois sur le plateau donné avec les mouvements de Chess King.
Tâche
Considérons une grille Sudoku 6 par 6:
654 | 321
123 | 654
----+----
462 | 135
315 | 246
----+----
536 | 412
241 | 563
et une visite du roi (du 01
au 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
La visite constitue le numéro à 36 chiffres 654654564463215641325365231214123321
.
Faire un tour du roi différent donne un plus grand nombre; par exemple, je peux trouver un chemin qui commence par 65<6>56446556...
qui est nettement supérieur à ce qui précède. Vous pouvez changer la carte Sudoku pour obtenir des nombres encore plus élevés:
... | ...
.6. | ...
----+----
..6 | ...
.5. | 6..
----+----
.45 | .6.
6.. | 5..
Cette carte incomplète donne la séquence de départ 666655546...
qui est la séquence optimale de 9 chiffres de départ.
Votre tâche consiste à trouver le plus grand nombre de ce type pour le Sudoku 9 x 9 standard avec des boîtes 3 x 3 , c'est -à- dire
... | ... | ...
... | ... | ...
... | ... | ...
----+-----+----
... | ... | ...
... | ... | ...
... | ... | ...
----+-----+----
... | ... | ...
... | ... | ...
... | ... | ...
Notez que ce défi n'est pas du code-golf ; l'objectif est de trouver réellement les solutions plutôt que d'écrire un petit programme qui fonctionne théoriquement.
Critère de notation et de victoire
Le score d'une soumission est le nombre à 81 chiffres trouvé par votre programme. La soumission avec le score le plus élevé gagne. Votre programme devrait également produire la grille Sudoku et la visite du roi sous une forme lisible par l'homme; veuillez les inclure dans votre soumission.
Votre programme peut produire plusieurs résultats; votre score est le maximum d'entre eux.
Il n'y a pas de limite de temps pour votre programme. Si votre programme continue de fonctionner et trouve un nombre plus élevé par la suite, vous pouvez mettre à jour le score de la soumission en modifiant la publication. Tiebreaker est le moment le plus précoce pour atteindre le score, c'est-à-dire soit le moment de la publication (s'il n'est pas encore édité) ou le moment de l'édition lorsque le score a été mis à jour (sinon).
la source
Réponses:
Python + Z3 , 999899898789789787876789658767666545355432471632124566352413452143214125313214321, optimal
Fonctionne en environ une demi-heure, produisant
Code
la source