Strings in allen möglichen Reihenfolgen anordnen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

also, ich halte die permutations-routine von sylvia für die beste lösung.

muss halt hier angepasst werden auf ein string-array.

ich würde sie wie schon zu anfang gesagt, in ein array einlesen, diese proc kann dann die anzahl zurückliefern.
(vorher mega-fett dimensionieren, dann redim auf aktuelle anzahl)

[edit] neue permutations-routine von froggerprogger

http://robsite.de/php/pureboard/viewtop ... 2c260#9331
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag von Froggerprogger »

Ich hatte Sylvias Beispiel vorher kurz überflogen und dachte, das wäre nur für eine fixe Anzahl von (im Beispiel 3) Elementen ?
Oder habe ich da was übersehen ?

Bei einer fixen kleinen Anzahl ist natürlich die verschachtelte For-Schleife unschlagbar schnell und einfach.

[edit]man müßte das dann allerdings eigentlich auch per Rekursion bis zur Tiefe der gewünschten Anzahl Zeichen lösen können... da denke ich mal noch drüber nach[/edit]
!UD2
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

oops, so genau weiss ich das garnicht mehr.

na, da ja vTuT sowieso eine unbestimmte anzahl von elementen hat,
wird deine proc ihm gerade recht kommen :allright:
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag von Froggerprogger »

Hab grade nochmal Sylvias Methode angesehen, die macht sogar etwas anderes:
Einmal werden alle Variationen inkl. Wiederholung aufgezählt. (also auch 111, 122, etc.)
Und einmal werden (ohne Zeichenwiederholung) nur Variationen aufgezählt, welche 'nach hinten hin zunehmen', also 123, 126, 147, nicht aber z.B. 312.

Sind also beidemale nicht die Permutationen der Ausgangsmenge.
Permutationen = 'Umsortierung', wobei jedes Element genau einmal auftauchen darf und dabei an einer beliebigen Position stehen darf.
!UD2
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag von vonTurnundTaxis »

Also:
Ich habe jetzt Sylvias Beispiel abgeändert, so dass es jetzt für meine Zwecke taugt...
Die höchste Anzahl von zu kombinierenden Strings liegt bei 5.
Um euch mal darüber aufzuklären, wozu ich das eigentlich gebraucht habe:
Ich progge gerade an einem Vokabeltrainer und möchte, dass man alle (das sind egtl. nie mehr als 5) Bedeutungen angeben KANN, aber nicht muss. Jetzt geht´s ja :allright:
Noch mal Danke für eure Hilfe!
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 »

und da erzeust du permutations-strings zum vergleich?

sorry, aber das finde ich recht umständlich.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten