Algorithmus für ein einfaches Sudoku

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
simideluxe
User
Beiträge: 8
Registriert: Donnerstag 7. Dezember 2017, 08:59

Ich möchte eine Funktion entwickeln, die ein einfaches Sudoku berechnet (Ohne komplizierten Code). Das Ergebnis soll einfach über den Print-Befehl ausgegeben werden. Das Sudoku soll z.B. so aussehen:

s = [[1,0,3,4],
[3,1,0,2],
[4,3,2,0],
[0,4,1,3]]

Hat jemand einen Tipp? Keine Schulaufgabe sondern privates Projekt zuhause!!
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ist kein Sudoku. Es fehlt also noch an einer Menge Erklaerung, was du eigentlich moechtest. Moechtest du ein Sudoku *loesen*, oder moechtest du eines erzeugen?

Und so etwas wird - in beiden Faellen - nicht ohne "komplizierten Code" abgehen.
narpfel
User
Beiträge: 643
Registriert: Freitag 20. Oktober 2017, 16:10

Moin,

suchst du eine Funktion, um ein beliebiges Sudoku zu lösen? Ohne komplizierten Code? Da würde ich den hier gezeigten Ansatz empfehlen. 9 einfache Zeilen. :wink:

Falls du’s selbst machen möchtest: Backtracking ist eine mögliche Art, das Problem zu lösen.

Falls du ein Sudoku generieren möchtest: Diese StackOverflow-Antwort beschreibt einen Algorithmus, der relativ einfach zu implementieren sein sollte.

Falls du konkretere Hinweise haben möchtest, schließe ich mich __deets__ an: Du müsstest dein Problem genauer beschreiben und uns im Idealfall deinen Code bzw. Ansatz zeigen und sagen, wo genau du nicht weiter kommst.

@__deets__: Mal abgesehen davon, dass das ganze nicht lösbar ist, weil in zwei Quadraten jeweils eine Zahl doppelt vorkommt: Man könnte das als ein 4-mal-4-Sudoku ansehen, bei dem `0` für ein leeres Feld steht.
Antworten