Huhu,
danke für deinen Tipp, aber das löst mein Problem nicht so recht. Also die Prios in mein Array schreiben und so klappt ja, aber ich muss irgendwie die die Kombinationen tauschen, um alle Möglichkeiten zu erhalten.
In meinem jetzigen Verfahren, bei dem:
Prio1: J1, J2, J3
Prio2: J4,
Prio3: J5, J6
erhalte ich folgendes:
Code:
012345
021354
102345
120354
201345
210354
Und zwar 2x
Fehlen tut:
Code:
012354
021345
102354
120345
201354
210345
Ich weiß aber nichtmal wie die universelle mathematische Lösung dieses Problems wäre. Da macht sich das schlecht diese auch noch in Code umzusetzen *g*
Code bisher:
Delphi-Quellcode:
// Kombiniere die Kombis der einzelnen Prioritäten
SetLength(arr_finKombis, count);
for i := 0 to Length(arr_finKombis) - 1 do
SetLength(arr_finKombis[i], jobCount);
for i := 0 to ol.Count - 1 do
begin
Priolist := ol[i] as TPriolist;
kz := 0;
loops := count div Length(Priolist.Kombis);
j := 0;
while j < loops do
begin
for k := 0 to Length(Priolist.Kombis) - 1 do
begin
sz := 0;
for l := 0 to ol.Count - 1 do
begin
pt := ol[l] as TPriolist;
if pt.prio = Priolist.prio then
Break;
sz := sz + Length(pt.Jobs);
end;
for l := 0 to Length(Priolist.Kombis[k]) -1 do
begin
arr_finKombis[kz,sz] := Priolist.Kombis[k,l];
Inc(sz);
end;
Inc(kz);
end;
Inc(j);
end;
Is nich so schön kurz und prägnat wie dein Code, aber er macht auch was er soll.