Forum: Offtopic Sudoku lösen


von Stefan W. (swesch)


Lesenswert?

Hallo in die Runde!

Ich habe ein spezielles Sudoku welches ich nicht zu Fuß lösen möchte ;-)
( Geocaching-Rätsel )

Hier ein Beispiel:
http://2.bp.blogspot.com/-49uYhXVUThA/Tejbsm3h97I/AAAAAAAAARQ/fHzIAI6qcVo/s1600/0006.png

Das ganze nennt sich Frame Sudoku oder auch Outside Sum Sudoku.

Die Zahl die außen steht ist die Summe der nächsten 3 Zahlen in der 
jeweiligen Richtung.

Kennt jemand von Euch einen Online-Solver für diese Variante.
3h Google habe ich schon hinter mir und selber proggen mag ich net.

Danke und Gruß

Stefan

von D. I. (Gast)


Lesenswert?

Wenn du die 3h googlen zum selber proggn genutzt hättest wärs schon 
fertig ;)

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Wenn er die 3h zum lösen genutzt hätte vermutlich auch ;-)

Wie peinlich ist den das bitte... wenn du keinen Bock hast dann lass das 
doch mit dem Geocaching.

von Stefan W. (swesch)


Lesenswert?

Läubi .. schrieb:
> Wie peinlich ist den das bitte...
Peinlich finde ich nur die beiden Antworten.

In 3h sowas selbst proggen, da bekomme ich ja einen Lachflash!

von Εrnst B. (ernst)


Lesenswert?

Stefan W. schrieb:
> In 3h sowas selbst proggen, da bekomme ich ja einen Lachflash!

Ja, drei Stunden sind etwas übertrieben, das geht auch in 30 Minuten.
Man muss einfach nur die richtigen Tools kennen&nutzen.
In dem Fall: Prolog.
Einfach die (Frame-) Sudoku-Beschreibung runtertippen, Lösungs-Weg und 
Lösung sucht der Computer.

von Purzel H. (hacky)


Lesenswert?

Die Aufgabe ist eher trivial. Das ist doch eine gute Uebung... Ich 
wuerd's mal mit einem Gleichungsystem probieren. Ein Matritze 
durchlassen und gut ist.

von Timm T. (Gast)


Lesenswert?

Stefan W. schrieb:
> Kennt jemand von Euch einen Online-Solver für diese Variante.

Sollen wir den Cache für Dich auch mit loggen? Nicht dass Du schmutzig 
wirst...

von Großes F. (112)


Lesenswert?

...also ich weiss nicht, ob das wirklich so einfach zu programmieren 
ist...

Für jedes 9er-Feld erhalte ich ja aus den Summen zunächst nur 6 
Gleichungen.
Also für alle neun Bereiche 54 Gleichungen.
Benötigt werden 81 Gleichungen.

Die fehlenden 27 Stück kommen aus den 9 Feldsummen und den 9 
Reihensummen und den 9 Spaltensummen von jeweils 45

Ingesamt würde es also ein 81x81 Gleichungssystem werden, wenn ich 
daraus ein LGS bilde... Das System wäre regulär und damit lösbar.
Alleine das Einhacken in Matlab würde aber sicher mehr als 2 Stunden 
benötigen...

Matlab würde aufgrund der Regularität auf jeden Fall eine Lösung finden, 
aber im Aufwand von O².

Kann man aufgrund der sudokuspezifischen Regelsätze den Aufwand 
reduzieren?


VG

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Großes Fragezeichen schrieb:
> Kann man aufgrund der sudokuspezifischen Regelsätze
> den Aufwand reduzieren?

Naja die "Randzahlen" muss man so oder so abtippen, die Gleichungen für 
Mathlab könnte man sich dann mit etwas Geschick ggf. generieren lassen.

Oder dann halt gleich einen kompletten solver schreiben. Das das ggf. 
ein paar Minuten bis zur Lösung dauert ist erst mal unerheblich wenn man 
nicht Millionen der Dinger lösen will oder eine der Ehrgeiz packt ;-)

Großes Fragezeichen schrieb:
> Alleine das Einhacken in Matlab würde aber sicher mehr
> als 2 Stunden benötigen

Er hat ja nun schon 3h gegoggelt, hier Beiträge verfasst, ... und Sinn 
des "Spiels" ist es doch das Rätsel eigenständig zu lösen. Wenn man 
halt keine Lust dazu hat zwingt einen ja niemand, da er auch nicht 
"selber proggen mag"...

von Timm T. (Gast)


Lesenswert?

Großes Fragezeichen schrieb:
> Also für alle neun Bereiche 54 Gleichungen.

Nix Gleichungen, Rekursion. Muss halt effizient programmiert werden, 
damit es noch in diesem Jahrhundert fertig wird.

von Großes F. (112)


Lesenswert?

...ist denn eine Rekursive Programmierung schneller als O(N²)?

Wenn ja, wird sicherlich eine ganze Menge Speicherplatz benötigt, um 
falsche Lösungen nicht versehentlich zu wiederholen...

VG

von Timm T. (Gast)


Lesenswert?

Großes Fragezeichen schrieb:
> Wenn ja, wird sicherlich eine ganze Menge Speicherplatz benötigt, um
> falsche Lösungen nicht versehentlich zu wiederholen...

Häh? Das ist ja der Witz bei der Rekursion, dass quasi jedes Feld auf 
jede Variable getestet wird. Da wird nichts wiederholt.

Die Kunst ist, die Abbruchbedingungen clever zu definieren, so dass das 
Programm recht schnell nicht zielführende Wege erkennt und nicht weiter 
verfolgt.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Das Verfahren nennt sich aber Backtracking... und das kann man dann 
rekursiv oder iterativ implementieren....

von Purzel H. (hacky)


Lesenswert?

Backtracking muss im schlechtesten Fall alles abklapprn, quasi 
Brute-force, das waeren dann N-fakultaet. nein? Nicht ganz. Moment. Jede 
Zeile braucht 9 Fakultaet. Bin ich mit 9 Fakultaet im Quadrat dabei? Da 
fehlt noch was...

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Siebzehn mal Fuenfzehn schrieb:
> Backtracking muss im schlechtesten Fall alles abklapprn,
> quasi Brute-force

Für ein beliebiges Problem ja, für Sudoku und die hier vorgestellte 
Variante gibt es aber ungültige Züge, d.h. gewisse Pfade enden vorzeitig 
bevor man alles durchsuchen musste. Der Trick ist also möglichst gute 
Abbruchkriterien zu finden, ein "normales" Sudoku kann man innerhalb 
weniger Sekunden auf einem Standard PC lösen (lassen).

von D. I. (Gast)


Lesenswert?

bei einem 9x9 Sudoku dauert Backtracking ein paar ms. Sudoku ist 
NP-vollständig, also kann man machen was man will schneller als 
exponentiell wirds nicht selbst wenn man mit Regeln den Rekursionsbaum 
prunt. Diese Variante kann man aber auch zügig lösen, ist ja nur 9x9.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.