Strings in allen möglichen Reihenfolgen anordnen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Strings in allen möglichen Reihenfolgen anordnen

Beitrag von vonTurnundTaxis »

Also... Mein Problem:
Ich möchte aus einer Textdatei Wörter, die untereinander stehen

Code: Alles auswählen

Wort1
Wort2
Wort3
Wort4
Wort5...
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! :allright:
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag 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
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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 :wink:
Zuletzt geändert von Kaeru Gaman am 19.11.2004 06:02, insgesamt 1-mal geändert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Tibor
Beiträge: 42
Registriert: 29.08.2004 03:25
Wohnort: Mittelerde, südlich der großen Grasplantagen

Beitrag von Tibor »

Ich habe im Codearchiv das hier gefunden. (Da findet man fast alles.)
Vielleicht hilft es.
Besonders die Verarbeitungszeiten solltest du beachten. ;)
Benutzeravatar
MLK
Beiträge: 267
Registriert: 01.11.2004 13:17
Wohnort: Hamburg

Beitrag 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
Benutzeravatar
Joker
Beiträge: 10
Registriert: 04.11.2004 13:29

Beitrag 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
Play the Game
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag 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!
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag 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.
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag 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' :D ]
!UD2
Antworten