| Programmieraufgaben Hier wird regelmäßig eine neue Programmieraufgabe gestellt, die dann gelöst werden soll und in Zusammenarbeit mit den Moderatoren auch besprochen werden kann. |
Diskussion: Sudoku Cheat-Prog. im Forum Programmieraufgaben, in der Kategorie Code Kitchen; Hallo, ich denke die meisten hab schon mal was von Sudoku gehört, und wissen wie man es spielt. Für alle ...
![]() |
| | #1 (permalink) |
| Moderator ![]() Registriert seit: 30.03.04 ![]() Likes: 14 | Hallo, ich denke die meisten hab schon mal was von Sudoku gehört, und wissen wie man es spielt. Für alle 'Unwissenden': Wikipedia So für alle die Ungeduldig sind, wäre es schön ein 'Cheat' Programm zu schreiben. Dies ist eigentlich eine sehr schöne Aufgabe, und hört sich am Anfang schwerer an, als es ist. Aufgabe Also der User gibt seine Zahlen der Sudoku-Vorlage ein, am besten per Interface, sonst kann man dies aber z.B. fest im Source Code verankern. Der Computer soll dann ermitteln, was man in die freien Felder eintragen muss, um das Soduko zu lösen, und am Ende das Ergebnis ausgeben. Evt. Erweiterung: Generieren von eindeutigen Sodukos, bei dem der User den Schwierigkeitsgrad bestimmen kann. Man kann hierbei die Backtracking-Methode verwenden. Allgemeine Sachen: Fertige Programme können ein vorgegebenes Sudoku in wenigen Sekunden knacken, also ist der Algorithmus nicht extrem Zeitintensiv, und sehr viele Code-Zeilen sind es auch nicht (der Algorithmus zum Lösen braucht ca. 30 Zeilen). Aber die Theorie dahinter ist eigentlich ganz intressant. Mehr zu Backtracking |
| | |
| | #2 (permalink) |
| Member of Honour ![]() Registriert seit: 14.09.03 ![]() ![]() Likes: 23 | Man muss es ja nicht zum Cheaten verwenden, je nach dem kann man es ja auch als "Lösungsvergleich" nehmen. Hört sich auf jeden Fall interessant an |
| | |
| HaBOT | |
| |
| | #3 (permalink) |
| Registriert seit: 01.11.03 ![]() Likes: 0 | Hmm... genau so eine Aufgabe hab ich Xalon geschickt... mit der möglichen Erweiterung zum generieren eines (eindeutigen) Rätsels... (eine Lösung hab ich auch schon, werde aber noch warten) |
| | |
| | #4 (permalink) |
| Moderator ![]() | Ich hab vor ein paar Monaten mal eine Sudoku-Klasse in PHP für Sudokus beliebiger Größe geschrieben, die auch eine Lösungsmethode enthält. Darin sind mehrere Algorithmen implementiert, die versuchen das Ding logisch aufzulösen sowie auch ein Trial&Error-Mechanismus, falls man mit Logik allein nicht weiter kommt. Eine Demo des ganzen kann man hier angucken Es ist allerdings nicht zu empfehlen, die Trial&Error-Methode als einzige anzuwenden, die ist ziemlich ressourcenfressend, da sie für jeden Versuch eine Kopie des aktuellen Sudokus anlegt, und dauert auch im Vergleich zu einer Kombination mit den anderen Methoden erheblich länger (bis zum Script-Timeout, den ich aus naheliegenden Gründen dafür nicht deaktivieren wollte *g). |
| | |
| | #5 (permalink) | |
| Registriert seit: 01.11.03 ![]() Likes: 0 | Zitat:
| |
| | |
| | #6 (permalink) |
| Registriert seit: 18.07.05 ![]() Likes: 0 | dann zeig uns die doch mal :-) ich habe shcon mal versucht ein lösungs algo für koruko (oder wie das heißt und nein ich meine nicht soduko!!) herzustellen bin aber gescheitert... :-( |
| | |
| | #7 (permalink) | |
| Moderator ![]() | Zitat:
Einfaches Doubletten-streichen mit meiner PHP-Klasse braucht dafür 33ms auf einem Athlon 2400+. Mein Schwerpunkt bei der Klasse lag bei den übrigen Algorithmen, die möglichst intelligent vorgehen sollten, nicht beim stupiden ausprobieren. Das hab ich nur noch mit reingenommen, da es gelegentlich ja mal vorkommen kann, dass ein Sudoku allein durch Logik nicht lösbar ist. | |
| | |
| | #8 (permalink) |
| Moderator ![]() Registriert seit: 30.03.04 ![]() Likes: 14 | Hallo, @LX: Bei solchen Sachen ist PHP eh super langsam, um den Faktor 1000 bis xxxx... Guter Vergleich: Ackermann-Funktion mit n = 3 und m = 12 In C ca. 22 Sek, in PHP bricht der Script vorzeitig (zumindest bei mir): Ackermann-Funktion in PHP Vielleicht gehts woanders. |
| | |
| | #9 (permalink) |
| Registriert seit: 01.11.03 ![]() Likes: 0 | Mit n = 3 und m = 12 braucht C++ 7,2 Sekunden und PHP bricht mit einem Segfault ab. Verkürzt man auf n = 3 und m = 10 braucht C++ nur noch 0.49 Sekunden und PHP 140 Sekunden. (Was etwa Faktor 285,7 entspricht.) @NULL!=NULL: koruko kenn ich nicht und google bringt mich da auch nicht weiter. Worum geht es denn? |
| | |
| | #10 (permalink) |
| Moderator ![]() | Ich bin mir dessen bewusst, mit PHP sicherlich keinen Geschwindigkeitsrekord aufzustellen, darum ging's mir auch nicht. Also bitte wieder zum Thema "Sudoku-Solver" zurück und nicht "Programmiersprache X vs. PHP" |
| | |
| | #11 (permalink) |
| wollte nur mal so nebenbei fragen ob diese aufgabe einer von euch zufällig so programmiert hat das man zahlen selber vorgeben kann!? ich habe mir von bild am sonntag (bitte jetzt nichts dazu sagen) ein sudoku aufs handy geholt und bis auf zwei alles durchbekommen, aber diese zwei bekommt einfach keiner gelöst daher wollte ich wissen ob wir alle zu doof oder das sudoku unlösbar ist! lange reder kurzer sinn, hat des einer ja oder nein ![]() christian | |
| | |
| | #12 (permalink) |
| Registriert seit: 06.04.05 ![]() Likes: 0 | Eben, auf dieser PHP Seite kannst du ja die Zahlen angeben. Die 0 steht dafür, dass nichts vorhanden ist. Und du fängst die Zahlen von oben links nach rechts unten an anzugeben. |
| | |
| | #13 (permalink) |
| ups, danke, war z war auf der website, hatte aber das lösungsprinzip net ganz verstanden, nach genauen lesen dann schon *schäm* christian | |
| | |
![]() |
| | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Sudoku-Generator | CDW | Programmieraufgaben | 1 | 04.08.09 02:12 |
| Sudoku | Ook! | Code Kitchen | 2 | 25.05.08 11:00 |
| The Cheat Report | stone.dr | Fun Section | 17 | 20.03.06 15:18 |
| Sudoku programmieren | jami | Code Kitchen | 1 | 16.10.05 15:05 |