Ich wollte mal wissen, wie ich es mit PB realisieren kann alle Kombinationsmöglichkeiten eines Strings ausgeben zu lassen.
Beispiel:
Ich habe einen String mit dem inhalt "ABCDE". Da dieser String 5 Zeichen enthält gibt es nun 120 Kombinationsmöglichkeiten, z.B.: "BACD" oder "ACBD" oder "ABDC" und immer so weiter.
Ich finde dafür einfach keinen passenden Ansatz und hoffe, das mir da jemand helfen kann.
Alle kombinationsmöglichkeiten eines Strings
Re: Alle kombinationsmöglichkeiten eines Strings
Ist nicht sehr schnell (da nicht optimiert, sondern voller String-Funktionen) aber es funktioniert:
Code: Alles auswählen
Procedure.s StringPermutation(String.s, Separator.s=#LF$, Before.s="")
Protected Output.s, Character.i, LastCharacter.i = Len(String)
If LastCharacter = 1
ProcedureReturn Before+String
Else
For Character = 1 To LastCharacter
If Output : Output + Separator : EndIf
Output + StringPermutation(Left(String,Character-1)+Mid(String,Character+1), Separator, Before+Mid(String,Character,1))
Next
EndIf
ProcedureReturn Output
EndProcedure
Define String.s = "ABCD"
Define Permutation.s = StringPermutation(String)
Debug CountString(Permutation, #LF$)+1
MessageRequester(String, Permutation)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr