Das
verbesserte erste Sudoku sah schon ganz gut aus, hat aber noch eine systematische Macke. Diese Macke ist kein Zufall, sondern jedes Sudoku, das wie beschrieben produziert wird hat diesen genetischen Fehler: In den Zeilen der mittleren Blöcke stehen stets "Drillinge".
Das liegt an zweierlei:
An der Vorgabe des Blocks oben links durch 9 9↑3 3⍴9?9. Allgemein gesprochen produziert TRIAL bei Vorgabe eines kompletten Blocks stets irgendwo diese "Drillinge".
TRIAL wählt die durchzutestenden Felder stets in gleicher Art und Weise aus, arbeitet die möglichen Lösungen für das gewählte Feld stets in gleicher Reihenfolge ab und beendet die Bearbeitung stets nach der ersten gefundenen Lösung. Kein Wunder, dass immer wieder die gleichen Muster auftauchen.
Beides kann einfach behoben werden.
Entweder verteile man die ersten 9 Vorgaben über alle 81 Felder:
9 9⍴((⍳81)∊9?81)\9?9
Oder man bearbeite die möglichen Lösungen einer Zelle in zufälliger Reihenfolge:
'RAN' TRIAL 9 9↑3 3⍴9?9
Der Parameter im linken Argument von TRIAL steht dabei - wie überraschend - für "random".