Inspiriert durch eine Aufgabe, die der Sohn eines Freundes in der Schule zu lösen hatte: SUDOKU Löser
- Win-32 Kommando Zeile
- Löst ein gegebenes Sudoku oder gibt aus dass unlösbar
- Aus- und Eingabe ist etwas rudimentär
Es funktioniert erstaunlich gut muss ich sagen.
Hat bisher jedes Sudoku gelöst, in quasi Nullzeit.
Und es hat nur 2 Stunden Arbeit gekostet.
Es läuft mit nur 280 Code Zeilen (könnte man aber locker noch auf ein drittel reduzieren.


.
Display More
Mein Sudoku-Löser hab ich vor (uh schon rund 10) Jahren in Perl geschrieben. Es lässt auch Farb-Sudokus als Eingabe zu. D.h. die Fläche ist nicht gleichförmig in 9 x 3x3-Block-Flächen aufgeteilt, sondern in in 9 farbige Bereiche, die je eine zusammenhängende Fläche bilden.
Ich bin regelmäßig irgendwo "hängen" geblieben, wo ich mir gedacht habe, das muss es doch eine Lösung geben. Und das Programm hat in diesen Fällen immer die Lösung gefunden (ich immer etwas übersehen). 
Mit der Debug-/Trace-Version kann man dem Script auch beim "Arbeiten" zuschauen, was für mich interessant war, besonders an den Knackstellen, wo ich nicht mehr weiterkam und auch das Script zwangsläufig verbei kommen musste (außer ich hab schon davor etwas übersehen).
Wer mag, kann sich gerne auch diese Variante mal ansehen.
sudoku.zip (sudoku.pl Script + Kurzanleitung sudoku.txt)
Archaisch, typischerweise für die Linux-Commandline oder alles was eine CLI und Perl hat. 
Übrigens, was ich immer komisch finde, ist das Sudoku oft bei Erklärungen vorkommt, wenn es um Problemlösung und deren Komplexität geht. Da wird oft Sudoku als NP-Problem (Non-Polynomial-Problem) angeführt, allerdings ist der Aufwand meines Erachtens P (Polynomial) oder gar linear, wenn man die gängigen Lösungsregeln bzw. Denkweise zur Auflösung anwendet.
Offenbar gehen manche davon aus, dass man die Felder so besetzt, dass man den Inhalt errät (oder einfach eine Annahme trifft) und dann schaut, ob es sich irgendwie ausgeht. Wenn nicht, muss man wieder zurück und neu raten. Ja, so könnte man einen Computer zur Lösung beschäftigen, aber ein Mensch (auch ein vernünftiger Sudoku-Solver) würde nie nach diesem Schema vorgehen. Das muss wohl irgendwie von Leuten stammen, die selbst nie ein Sudoku gemacht haben. 