Hallo, ich habe eine Buchstabenfolge von 25 Buchstaben, diese sind wahllos durcheinander gemischt. In der richtigen Reihenfolge sollen sie einen deutschen Satz ergeben. Leer-/Satzzeichen gibt es keine und Umlaute "äüöß" ebenfalls nicht. Wie kann ich nun unter C++ ein Programm entwickeln der mir sämtliche Kombinationen von Buchstaben ermittelt und ich somit den Text entschlüsseln kann. Später kommen noch Kriterien dazu wie z.B. Buchstabenkombinationen wie "xy" können nicht vorkommen usw. Ich bin für jeden Tipp dankbar.
naja prinzipiell musst du halt einfach stupide alle kombinationen durchgehen.... das kompliziertere ist wohl das du nicht weisst wieviele wörter es nun konkret sind (also wieviele trennzeichen du brauchst) ein wenig aufwand kannst du dir schonmal dadurch sparen indem du festlegst wieviele buchstaben ein wort mindestens haben muss....
das mit dem automatisch entschlüsseln dürfte da schon schwieriger sein, da um festzustellen das du fertig bist du halt nen duden oder ähnliches im speicher halten müsstest um zu gucken ob zumindest die einzelnen wörter die er rausbekommen hat sinn ergeben... (und in dem fall können die dann ja noch falsch angeordnet sein)... -- ...fleißig wie zwei Weißbrote
Ho, wenn das so einfach gehen würde. Was bringen dir sämtliche Kombinationen? Das Programm muss auch erkennen das es sich dabei um einen validen deutschen Satz/Sätze handelt. Hier liegt das eigentliche Problem. Für die Kombinationen einfach std::next_permutation aus <algorithm> nehmen. -- Wer früher stirbt ist länger tot.
@(un)wissender std::next_permutation wird nicht soviel helfen da da ja noch die leerzeichen zwischen müssen... auch weiss ich gerade nicht auswendig wie sich next_permutation verhält wenn man im z.b. aabc überigt... das a sollte der dann ja nicht "doppelt" permutieren weil es keinen sinn macht... -- ...fleißig wie zwei Weißbrote
@(un)wissender oh man warum hab ich das mal wieder überlesen mit den leerzeichen... jo dann ist die aufgabe einfach... sollen also so wörter wie Scheisshausdachziegelbrantwein oder so rauskommen -- ...fleißig wie zwei Weißbrote
So ungefähr. Du musst dann nur noch ein Wörterbuch haben. Die Wörter zu identifizieren ist NP-vollständig. Konflikte aufzulösen bleibt auch noch... Im Grunde genommen eine super üble Aufgabe, kann mir nicht vorstellen, dass die so ohne weitere Parameter gestellt wird. Zumindets ein Wörterbuch sollte vorgegeben werden. -- Wer früher stirbt ist länger tot.