(Moderator)
Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
Delphi 2007 Enterprise
|
Re: Zahlen-Kombinationen
18. Okt 2005, 11:00
Oder hier, ist kürzer:
Delphi-Quellcode:
Function NthPermutation (aString : String; aCount : Integer) : String;
Var
d : Array Of Integer;
g, i, n : Integer;
Begin
n := Length (aString);
setlength (d, n);
d[1] := 1;
For i := 2 to n - 1 do d[i] := i * d[i-1];
Result := '';
if aCount>=d[n-1]*n Then Exit;
for i := n-1 downto 1 do begin
g := (aCount div d[i]) + 1;
Result := Result + aString[g];
delete (aString, g, 1);
aCount := aCount mod d[i];
End;
Result := Result + aString;
End;
So erzeugst Du alle Permutationen eines Strings ('12345'):
Delphi-Quellcode:
Var
i : Integer;
s : String;
Begin
i:=0;
Repeat
s := NthPermuation ('12345',i);
inc (i);
if s<>'' Then Memo1.lines.add (s);
Until s= '';
End;
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
|
|
Zitat
|