Ich möchte ein völlig zufälliges Sudoku generieren .
Definieren Sie ein Sudoku-Gitter als Gitter mit ganzen Zahlen zwischen und wobei einige Elemente weggelassen werden können. Ein Raster ist ein gültiges Rätsel, wenn es eine einzigartige Möglichkeit gibt, es zu vervollständigen, um die Sudoku-Bedingungen zu erfüllen (jede Zeile, Spalte und ausgerichtetes Quadrat enthält kein wiederholtes Element), und ist es minimal (dh wenn Sie nichts mehr weglassen) Element das Puzzle hat mehrere Lösungen).
Wie kann ich ein zufälliges Sudoku-Puzzle generieren, sodass alle Sudoku-Rätsel gleich wahrscheinlich sind?
algorithms
randomness
sudoku
Justin
quelle
quelle
Antworten:
So können Sie die exakte gleichmäßige Verteilung aller Sudoku-Rätsel erstellen: Sie können ein 9x9-Raster nur zufällig generieren und dann nur beibehalten, wenn es sich um ein korrektes Sudoku-Raster handelt. Anderenfalls versuchen Sie es erneut.
Dieses Brute-Force - Ansatz garantieren Ihnen eine gleichmäßige Verteilung ist aber eindeutig nicht effizient, da Sie die Wahrscheinlichkeit des Gitters multiplizieren können richtig sein nur durch ein zufälliges 8x8 Gitter zu erzeugen und dann die restlichen zwei Linien füllen. Dies ist immer noch eine zufällige Verteilung, aber immer noch viel zu ineffizient.917
Vielleicht sehen Sie, wohin ich gehe: Wenn Sie dieses Problem auf clevere Weise beantworten, werden Sie sich wahrscheinlich über die zugrunde liegenden Symmetrien von Sudoku-Gittern wundern. In dieser Richtung wurde viel Arbeit geleistet, um die Tatsache zu beweisen, dass 17 die minimale Anzahl von Hinweisen auf ein Sudoku ist ( siehe diesen Artikel ), und Sie können hier die genaue Aufzählung von 5.472.730.538 Klassen von 3.359.232 ähnlichen Gittern sehen, die diese verwenden Symmetrien:
BEARBEITEN: Um dies an unvollständige Rätsel anzupassen, können Sie eine Teilmenge Ihres Rasters zufällig auswählen, prüfen, ob die Lösung mit einem Sudoku-Löser eindeutig ist, und es erneut versuchen, wenn nicht. Dies ist keine gleichmäßige Verteilung, da die Anzahl der unvollständigen Rätsel mit einer eindeutigen Lösung für zwei Raster unterschiedlich sein kann. (Ich wäre sonst sehr überrascht)
quelle