Seite 1 von 2
Strings in allen möglichen Reihenfolgen anordnen
Verfasst: 18.11.2004 21:58
von vonTurnundTaxis
Also... Mein Problem:
Ich möchte aus einer Textdatei Wörter, die untereinander stehen
in ALLEN möglichen Reihenfolgen miteinander kombinieren.
Also so:
Wort1 Wort2 Wort3...
Wort1 Wort3 Wort4...
Wort´und so weiter...
Dann sollten die einzelnen Wörter auch noch durch ",[LEERZEICHEN]" getrennt werden.
Ich wäre euch sehr dankbar, wenn ihr mir weiterhelfen könntet!

Verfasst: 18.11.2004 22:16
von Kaeru Gaman
ich würde sie erst in ein array einlesen, und dann mit ner routine, die random() benutzt, kombinieren. da kann man auch ohne probleme ein +" "+ einfügen
Verfasst: 18.11.2004 22:21
von vonTurnundTaxis
Aber mit Random ist doch nicht gesichert, dass es ALLE möglichen Kombinationen sind!
(Außerdem wäre es nett, wenn ihr den Code, den ihr euch vorstellt zumindest angedeutet postet)
THX vTuT
Verfasst: 18.11.2004 22:43
von Kaeru Gaman
ok, mit random kriegt man nicht alle und manche doppelt...
ist denn bekannt, wie viele wörter es sind ?
[EDIT] das beispiel von tibor aus dem archiv (siehe nächste post) sieht für mich passabel aus, da heisst es halt umstricken

Verfasst: 18.11.2004 23:51
von Tibor
Ich habe im Codearchiv
das hier gefunden. (Da findet man fast alles.)
Vielleicht hilft es.
Besonders die Verarbeitungszeiten solltest du beachten.

Verfasst: 19.11.2004 03:23
von MLK
hilft das ? basiert halt auf zufall. wenns systematisch sein sollte, geht das mit schleifen bestimmt gut.
Code: Alles auswählen
Anzahl=5
Dim wort.s(Anzahl-1)
For i=0 To Anzahl-1
wort(i)="Wort"+Str(i+1)
Next
Repeat
z+1
Repeat
kombi.s=""
Repeat
Zahl.s=Str(Random(Anzahl-1))
If CountString(kombi.s,Zahl)=0
kombi+Zahl
EndIf
Until Len(kombi)=Anzahl
Until CountString(SchonGehabt.s,kombi)=0
SchonGehabt.s+kombi+"|"
WortKombi.s=""
For i=1 To Anzahl
WortKombi+wort(Val(Mid(kombi,i,1)))+" "
Next i
Debug WortKombi
Until z=120
Debug z
Verfasst: 19.11.2004 11:38
von Joker
schau mal hier im alten forum
http://robsite.de/php/pureboard-archiv/ ... uf%E4llige
den beitrag von sylvia. das ist echt genieal.brauchste nur auf strings umstellen
Verfasst: 19.11.2004 16:28
von vonTurnundTaxis
@Kaeru Gaman:
Es ist NICHT bekannt, wie viele Wörter es sind.
@Alle: Ich schau mir das Zeug mal an, hoffentlich hilft es mir weiser *hoff* DANKE!
Verfasst: 19.11.2004 16:37
von freedimension
vonTurnundTaxis hat geschrieben:@Kaeru Gaman:
Es ist NICHT bekannt, wie viele Wörter es sind.
Ich weiß das es keine Absicht war, aber durchgängig Großbuchstaben wird als Schreien angesehen und könnte in diesem Fall als unhöflich angesehen werden, schließlich wollte er ja nur helfen
Edit: zur Hervorhebung von Wörtern ist
fette Schrift besser geeignet.
Verfasst: 20.11.2004 20:47
von Froggerprogger
Hey, das war eine knifflige Aufgabe (zum Glück hatte ich gerade etwas Zeit.)
Ich bin auf folgenden Code gelangt (allerdings weiß ich nicht, ob es schnellere Algorithmen gibt, aber der Killer ist sowieso einfach die Anzahl der Permutationen, da diese mit der Fakultät von p_numElems wächst, z.B. bei 14 Elementen : 14! = 87.178.291.200).
http://www.robsite.de/php/pureboard/vie ... =9331#9331
[hab ich mal (im wahrsten Sinne) 'outgesourct'

]