Buchstaben sortieren...
lima-city → Forum → Heim-PC → Software
anwendung
ausgabe
beispiel
bringen
buchstabe
code
frage
funktion
http
letzten buchstaben
liste
machen
programm
richtige reihenfolge
string
tausch
tausche
verwirrte buchstaben
wort
zusammensetzung
-
Hi,
ich wollte mal fragen ob einer ein programm kennt, womit man verwirrte buchstaben in die richtige reihenfolge bringen kann, bzw. der alle möglichen zusammensetzungen auflistet.
Z.B aus den biuchstaben S W A:
was
asw
swa
usw....
und man sich dann nur noch das wort aus der liste raussuchen muss. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo,
hmm so wie es aussieht läuft das auf eine rekursive Funktion heraus die ein Pärchentausch macht.
Beispiel:
tausch letzten Buchstaben: was > wsa
tausch der Buchst. davor: wsa > swa
tausch letzten Buchstaben: swa > saw
tausch der Buchst. davor: saw > asw
tausch letzten Buchstaben: asw > aws
tausch der Buchst. davor: aws > was
Bei 3 Buchstaben sind es also 6 Möglichkeiten
Bei 4 Buchstaben funktioniert das genauso nur dass der 4. Buchstabe auch um die Stellen verschoben wird. Es ergäbe also 24 Möglichkeiten.
Bei der Rekursion füttert man die Funktion mit der Zeichenkette. Diese schaut ob das letzte Pärchen erreicht ist, falls ja mache Ausgabe und tausche Pärchen. Ansonsten halt ein Pärchen weiter hinter durchrücken.
Die Ausgabe wird dann ähnlich strukturiert wie eine laufende Binärzahl.
schau dirs einfach mal an evtl. kommste ja damit weiter http://de.wikipedia.org/wiki/Rekursion
Grüßle -
prost,
hmm so wie es aussieht läuft das auf eine rekursive Funktion heraus die ein Pärchentausch macht.
Beispiel:
tausch letzten Buchstaben: was > wsa
tausch der Buchst. davor: wsa > swa
tausch letzten Buchstaben: swa > saw
tausch der Buchst. davor: saw > asw
tausch letzten Buchstaben: asw > aws
tausch der Buchst. davor: aws > was
Das ist aber unpraktisch, weil es nur für Strings der Länge drei geht, und ich glaube devils-army wollte es allgemeiner. (Ist genau genommen auch keine Rekursion sondern \'ne Schleife)
Ich würde es eher so machen:
Die Funktion nimmt den String, iteriert über jeden Buchstaben drüber und ruft sich selbst auf, mit zwei Parametern: dem Buchstaben und dem String ohne diesen Buchstaben.
Bin jetzt zu faul Pseudocode zu schreiben, hier ist das Ganze in Python:
def unsort(s, prefix=u\'\'): if len(s) == 1: return [prefix + s] r = [] for i in range(len(s)): r.extend(unsort(s[:i] + s[i+1:], prefix + s[i])) return r
grüße, maix
-
@maix: natürlich kann man auch ein Pärchentausch auf 4 oder mehr Buchstaben machen (ich hab halt das Beispiel für 3 Buchstaben genommen). Ich denke mal wir meinen in etwa das Gleiche
-
Also erst mal, jemand der so etwas schreibt und dann als gewöhnliches \"Programm\" (also nich als php-Funktion oder so) ins Internet stellt, muss ein ziemlich übersteigertes Selbstbewusstsein haben, denn sowas braucht keiner zB in einer GUI Anwendung.
Wenn du sagst wofür du es brauchst kann ich dir vl helfen, Codebeispiele hast du ja schon bekommen. -
Hi,
ich wollte mal fragen ob einer ein programm kennt, womit man verwirrte buchstaben in die richtige reihenfolge bringen kann, bzw. der alle möglichen zusammensetzungen auflistet.
Z.B aus den biuchstaben S W A:
was
asw
swa
usw....
und man sich dann nur noch das wort aus der liste raussuchen muss.
Das ganze geht auch recht einfach über Excel (evtl. auch mit Makros)
Übrigens: Die Anzahl der möglichen Kombinationen beträgt n!, d.h. bei 5 Buchstaben hast du schon 5! = 120 Möglichkeiten... und hier willst du dir dann eine \"richtige Reihenfolge\" aussuchen? Ziemlich anstrengend, das alles durchzulesen... -
Was mir gerade aufgefallen ist, so einfach ist die Problemstellung wieder nicht, den angenommen ich geben ein \"hallo\", sind dann \"ahllo\" und \"ahllo\" 2 verschiedene Permutationen? (also, \"a\",\"h\",erstes \"l\",zweites \"l\",\"o\" und \"a\",\"h\",zweites \"l\", erstes \"l\",\"o\")
-
schonmal vielen dank für alles!
Aber ich hab schon ein Progr. gefunden...leider kennt es nicht so viele (komplizierte) worte, wie sie in dem quiz,welches ich machen muss drinvorkommen...
Also wenn eienr ein besseres kennt, nur her damit...
Für alle anderen: Hier ist mal das prog.
http://home.quicknet.nl/qn/prive/jj.thesing/de/puzzlehilfe.htm -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage