Eine Sudoku-Lösungsmatrix enthält in jeder Zelle des Sudokus alle noch möglichen Lösungen. Wie auch immer das Sudoku dargestellt wird, kann jedes Element der zugehörigen Lösungsmatrix z.B. einen numerischen Vektor mit Werten aus (⍳9) enthalten (⎕io=1). Es geht aber auch anders:
Statt mit Einträgen von unterschiedlicher Länge können für jede Zelle alle noch möglichen Lösungen mit einem boolschen Vektor der Länge 9 repräsentiert werden. Eine 1 an der 5.Stelle eines solchen Vektors bedeutet dann, dass die 5 zur Lösungsmenge gehört. Zusammen mit
"Wie könnte also eine Alternative aussehen?" ergibt das eine 3x3x3x3 Matrix mit Vektoren der Länge 9 als Elemente.
Diese Vektoren kann man auch entlang einer beliebigen neuen Dimension auftragen. Durch Anwendung von z.B. ⊃[1] erhalte ich eine neue erste Achse, d.h. meine Lösungsmatrix hat letztendlich 5 Achsen der Längen 9,3,3,3,3. Ist SDL diese Matrix, so werden in SDL[5;;;;] alle möglichen Plätze für die 5 mit einer 1 markiert.
Auf die so beschriebene Lösungsmatrix werden dann verschiedene Algorithmen angewandt mit dem Ziel schrittweise die Anzahl möglicher Lösungen zu vermindern bis das Sudoku komplett gelöst ist.
... ein Sudoku lösen: Ohne Versuch und Irrtum, nur durch logisches Kombinieren oder Ausschließen von Lösungen. So gehen menschliche Sudoku-Löser an die Sache, solange bis es mit diesen Methoden nicht weitergeht. Nachdem ich meine Darstellung eines
Aufgenommen: Apr 09, 23:12
... kommt gerade zum Tragen bei der Implementierung von Sodoku-Lösungsstrategien. Ein Sudoku sieht aus wie eine Matrix und lässt sich auch so darstellen. Um solche eine Sudoku-Matrix - ob zwei- oder fünfdimensional - als Einheit zu bearbeiten, braucht
Aufgenommen: Apr 14, 17:34
Gemeint ist hier die APL-Funktion transponieren, das Vertauschen von Achsen einer mehrdimensionalen Struktur. Die meisten von uns kennen Transpose angewandt auf eine 2-dimensionale Matrix: ⍉9 9⍴⍳81. Hier werden Spalten mit Zeilen vert
Aufgenommen: Apr 14, 17:59