Ja bei jeweils 2 Permutationen funktioniert es bei mir auch.
Versuch mal P1(J1, J2, J3) und P2(J4, J5). Da kommen bei mir nach der Hälfte nochmal die gleichen Endkombinationen raus, da ich mit P2 in umgekehrter Reihenfolge beginnen müsste.
Oder hab ich da grad nen ganz argen Denkfehler?
Gruß
EEEDIT: Ne warte mal. Dein Code macht das ja doch anders... Ich editiere dann nochmal, wenn ich deinen Tipp zu Ende durchdacht habe. ^^
Edit 2: Boah ich hab schon keine reine Informatik studiert, weil ich Mathe und so ne Logikprobleme hasse und nu schon wieder sowas... (Offtopic, um meinen Verfassungszustand ma n bissl zu schildern x-p)
Hier mein Zwischenstand:
Delphi-Quellcode:
function KombiGenerator(kz, sz, i: integer) : integer;
var
nPerms, nUnterkombis, j, kz_, jobs, k: integer;
Priolist: TPriolist;
begin
Priolist := ol[i] as TPriolist;
if i = ol.Count-1 then
Exit(1);
jobs := Length(Priolist.Jobs);
nPerms := Length(Priolist.Kombis);
for j := 0 to jobs - 1 do
begin
nUnterkombis := KombiGenerator(kz+1, sz+jobs, i+1);
for kz_ := (kz+j) to (kz+nUnterkombis) - 1 do
begin
for k := 0 to jobs - 1 do
resultarray[kz_,sz] := Priolist.Kombis[j,k];
end;
end;
Exit(jobs * nUnterkombis);
end;
Funktioniert so ja natürlich noch nicht. Ich hab nur erstmal deinen Pseudocode umgesetzt. Wenn ich weiter bin geb ich wieder bescheid.