Von dieser Einteilung von Permutationen hab ich noch nie gehört, naja, wenn du sowas auch mit längeren Auschnitten machen willst, solltest du dir eine Funktion schreiben, die dir zurückgibt, welcher Art die übergebene Folge ist. (ich geh mal davon aus, dass es sich um natürlich Zahlen handelt)
Etwa so
Delphi-Quellcode:
type
tDynIntegerArray
Function SageMirDenTyp(list: tDynIntegerArray): tdynintegerArray;
var
cnt,i,j,max,wo: integer;
begin
cnt:= length(list);
setlength(result,cnt);
for i:= 0 to cnt-1 do
begin
max:= list[0];
wo:=0;
for j:= 1 to cnt-1 do
begin
if list[j] > max then
begin
max:= list[j];
wo:=j;
list[j]:=0;
end;
end;
result[i]:=wo;
end;
Das ist ein etwas abgewandelter Selection-Sort Algorhytmus der dir eigentlich den Typ deiner Reihe zurückgeben sollte.
Erwarte das Beste und bereite dich auf das Schlimmste vor.