multimolti
Erfahrenes Mitglied
Hallo!
Ich stehe wieder mal vor einem Problem. Gehen wir davon aus, ich habe ein Feld von 4x4 Buchstaben, das z.B. so aussehen kann:
Jetzt soll mein Programm aus diesem Buchstabenfeld möglichst viele deutsche Wörter herausfinden können, wobei nicht nur gerade oder diagonale Kombinationen möglich sind, sondern kreuz und quer alles, was direkt verbunden ist, wobei jedes Feld nur ein mal verwendet werden darf. Somit kann man aus dem Beispiel etwa diese Wörter bilden:
Lee, Leer, des, leider, Diele, Silo, ...
Ich denke, das Prinzip ist jedem klar. Jetzt zu meinem eigentlichen Problem:
Ich gehe mal davon aus, dass ich eine Wörterdatenbank benötigen werde, ich der die Wörter, die das Programm finden können soll, enthalten sind. Gehen wir davon aus, dass ich eine solche Datenbank besitze, mein Problem ist die verwirklichung der Suche nach sinnvollen Wörtern.
Ich könnte:
Bitte helft mir bei dem Problem! Vielen Dank!
Ich stehe wieder mal vor einem Problem. Gehen wir davon aus, ich habe ein Feld von 4x4 Buchstaben, das z.B. so aussehen kann:
Code:
N I L O
S D E E
E C E I
S R E O
Lee, Leer, des, leider, Diele, Silo, ...
Ich denke, das Prinzip ist jedem klar. Jetzt zu meinem eigentlichen Problem:
Ich gehe mal davon aus, dass ich eine Wörterdatenbank benötigen werde, ich der die Wörter, die das Programm finden können soll, enthalten sind. Gehen wir davon aus, dass ich eine solche Datenbank besitze, mein Problem ist die verwirklichung der Suche nach sinnvollen Wörtern.
Ich könnte:
- Von jedem Buchstaben aus starten und dann JEDE mögliche Kombination durchgehen und nachschauen, ob diese in der Datenbank vorkommt. Das ergäbe, wenn man jetzt mal ganz grob rechnet, 16! Möglichkeiten, also etwa 2*10^13, was extrem viel ist. Wenn man davon ausgeht, dass Wörter kürzer als 3 Buchstaben (außer Ei) und länger als 8 Buchstaben unwahrscheinlich sind, und die Kombinationen von Konsonanten wie "tkb" und sowas ausschließt, ließe sich die Zahl verringern, aber es ist glaube ich trotzdem noch zu rechenaufwändig.
- Man könnte jeden Eintrag in der Datenbank durchgehen, zuerst schauen, ob alle benötigten Buchstaben im Feld vorkommen, und wenn ja eine Kombination suchen, ob man die vorhandenen Buchstaben auch zu dem gewünschten Wort kombinieren kann. Das ist schon besser als Vorschlag 1, aber immer noch sehr ineffizient.
- Sicherlich gibt es eine bessere Idee als sich so blind durch alle Möglichkeiten durchzutasten, hier frage ich jetzt euch: Fällt euch was Gutes ein? Ich denke, das Ausschlussverfahren von Kombinationen ohne Vokale und mit unmöglichen Konsonanten bringt schon mal etwas, aber sicherlich gibt es noch bessere Vorschläge
Bitte helft mir bei dem Problem! Vielen Dank!