Ich hab das mal vor ner Ewigkeit versucht in Java zu realisieren, der Algorithmus hat aber immer nur die Hälfte gelöst und hat dann gestoppt. Ich hab den Fehler nie gefunden... :(
Das ist schade. Probier's doch jetzt einfach nochmal :) Wahrscheinlich hast du jetzt auch das Wissen oder die Erfahrung, die dir damals gefehlt hat um den Fehler zu finden. Gerade das Lösung von Sudokus ist ziemlich witzig, finde ich.
Hallo, danke für das Video. Ich hab zwar noch nicht wirklich verstanden, wie man das Backtracking (in VBA) realisieren kann, aber mal gucken ... Bei dem Labyrinth gibt es aber eine sehr einfache Lösung (theoretisch). Man geht IMMER in einem Labyrinth entweder nach rechts oder immer nach links. Auch in einer Sackgasse dreht man sich dann eben einfach, geht wieder zur Kreuzung zurück und geht dann eben weiter nach rechts (oder links). So kommt man IMMER zum ZIel oder zum Ausgang oder wieder zum Start zurück (falls es kein Ziel gibt).
Als Sudoku Lösung eher weniger geeignet. Füllt man zB 5 Zahlen aus und kommt nicht weiter, muss man wieder bis zur Ersten zurück. Ein PC kann das so, aber ein Mensch würde wohl nen Tag brauchen. Das ist dann kein System, sondern ausprobieren. Wie bei einem 3er Zahlenschloss. Bei 000 gehts los bei 1.000 Möglichkeiten und je kleiner die Codezahl ist, desto schneller geht es. Mit dem Vorteil, dass man nicht zurück muss. Was mir beim "sehr schweren Sudoku" auffiel war, dass es dort auch noch Schwierigkeitsunterschiede gibt. Sehr problematisch ist, wenn man alle möglichen Zahlen nach normaler Methode eingetragen hat, es von 1 oder gar 2 Zahlen aber nur sehr wenige aufgedeckt wurden sind. Die können dann zusätzlich in jedem freien Feld sein,
a) im Video geht's darum wie Backtracking funktioniert, nicht wie man Sudoku am effizientesten löst ;) b) auch Ausprobieren ist ein System und heißt "brute force" oder "brute force search". BF und Backtracking sind durchaus verwandt. Du musst bei BF vielleicht keine Schritte zurück gehen, bei BF füllst du aber auch jegliche Zahlenkombination ein, die von Sudoku nicht vorgesehen ist (11111...). Diese Kombinationen umgeht Backtracking direkt. Fazit: Schritte zurück gehen ist also ein Vorteil, weil so gleich diverse "non-sense" Lösungen ausgeschlossen werden können und das spart Rechenzeit. 👍
❤vielen Danke❤
Hat geholfen, Danke
Danke für die Hilfe!
Ich hab das mal vor ner Ewigkeit versucht in Java zu realisieren, der Algorithmus hat aber immer nur die Hälfte gelöst und hat dann gestoppt. Ich hab den Fehler nie gefunden... :(
Das ist schade. Probier's doch jetzt einfach nochmal :) Wahrscheinlich hast du jetzt auch das Wissen oder die Erfahrung, die dir damals gefehlt hat um den Fehler zu finden. Gerade das Lösung von Sudokus ist ziemlich witzig, finde ich.
+Bleeptrack Ich werd's nochmal versuchen ^^
Hallo, danke für das Video.
Ich hab zwar noch nicht wirklich verstanden, wie man das Backtracking (in VBA) realisieren kann, aber mal gucken ...
Bei dem Labyrinth gibt es aber eine sehr einfache Lösung (theoretisch). Man geht IMMER in einem Labyrinth entweder nach rechts oder immer nach links. Auch in einer Sackgasse dreht man sich dann eben einfach, geht wieder zur Kreuzung zurück und geht dann eben weiter nach rechts (oder links).
So kommt man IMMER zum ZIel oder zum Ausgang oder wieder zum Start zurück (falls es kein Ziel gibt).
King
@@agent_artifical Kong :-)
Als Sudoku Lösung eher weniger geeignet.
Füllt man zB 5 Zahlen aus und kommt nicht weiter, muss man wieder bis zur Ersten zurück.
Ein PC kann das so, aber ein Mensch würde wohl nen Tag brauchen.
Das ist dann kein System, sondern ausprobieren.
Wie bei einem 3er Zahlenschloss. Bei 000 gehts los bei 1.000
Möglichkeiten und je kleiner die Codezahl ist, desto schneller geht es.
Mit dem Vorteil, dass man nicht zurück muss.
Was mir beim "sehr schweren Sudoku" auffiel war, dass es dort auch noch Schwierigkeitsunterschiede gibt.
Sehr problematisch ist, wenn man alle möglichen Zahlen nach normaler Methode eingetragen hat, es von 1 oder gar 2 Zahlen aber nur sehr wenige aufgedeckt wurden sind.
Die können dann zusätzlich in jedem freien Feld sein,
a) im Video geht's darum wie Backtracking funktioniert, nicht wie man Sudoku am effizientesten löst ;)
b) auch Ausprobieren ist ein System und heißt "brute force" oder "brute force search". BF und Backtracking sind durchaus verwandt. Du musst bei BF vielleicht keine Schritte zurück gehen, bei BF füllst du aber auch jegliche Zahlenkombination ein, die von Sudoku nicht vorgesehen ist (11111...). Diese Kombinationen umgeht Backtracking direkt. Fazit: Schritte zurück gehen ist also ein Vorteil, weil so gleich diverse "non-sense" Lösungen ausgeschlossen werden können und das spart Rechenzeit. 👍