要約:
登録されているモジュールを選択します。
各モジュールには多数のグループがあります。
各グループは、特定のモジュールの講義を表します。
各組み合わせには、各モジュールから 1 つのグループのみを含める必要があります。
例:
COS 121 -3 グループ
COS 132 -2 グループ
これにより、[1,1]、[1,2]、[2,1]、[2,2]、[3,1]、[3,2] の 6 つのオプションが得られます。
私の角度: 各組み合わせを使用して時刻表を生成する必要があるため、現在使用されているグループとグループの総数を格納する配列を使用します。arrSubjects[subject,currentGroup,maxGroups]
論理的には、この配列を繰り返し処理して、グループの各組み合わせを利用できるはずです。
間違った角度を使用しているためか、このソリューションを把握できません。どんな助け/提案も本当に感謝しています。
私の現在の実装: 時間がかかるため、これについては非常に恥ずかしいですが、うまくいきます。疑似コードの基本は次のとおりです。
for (all the groups multiplied with eachother) do {
for (all the modules selected) do {
Select a random group between 1 and the nmr of groups
}
}
その後、すべての重複を取り除く必要があります。
前もって感謝します
私が現在取り組んでいるコード:
arrPermutations[0,0]:=1;//Current group for 1st module
arrPermutations[0,1]:=3;//Max groups for 1st module
arrPermutations[1,0]:=1;
arrPermutations[1,1]:=3;
arrPermutations[2,0]:=1;//Current group for 3rd module
arrPermutations[2,1]:=3;//Max groups for 3rd module
iCurrent:=iMax; //2
while (arrPermutations[0,0]<=arrPermutations[0,1]) do
begin
//Display arrPermutations
if arrPermutations[iCurrent,0]=arrPermutations[iCurrent,1] then
begin
Inc(arrPermutations[iCurrent-1,0]);
for i := iCurrent to iMax do
arrPermutations[i,0]:=1;
iCurrent:=iMax;
end else
begin
Inc(arrPermutations[iCurrent,0]);
end;
end;
現在、最後の 2 つのグループのみをトラバースしています。チェックしたときに得られる出力は次のとおりです:
============Run 1==============
module,current group,max groups
1,1,3
2, 1,3
3,1,3
============実行 2==============
モジュール、現在のグループ、最大グループ
1,1,3
2, 1,3
3,2,3
============実行 3==============
モジュール、現在のグループ、最大グループ
1,1,3
2, 1,3
3,3,3
============実行 4==============
モジュール、現在のグループ、最大グループ
1,1,3
2, 2,3
3,1,3
============実行 5==============
モジュール、現在のグループ、最大グループ
1,1,3
2, 2,3
3,2,3
============実行 6==============
モジュール、現在のグループ、最大グループ
数 1,1,3
2,2,3
3,3,3
============実行 7==============
モジュール、現在のグループ、最大グループ
数 1,1,3
2,3,3
3,1,3
============実行 8==============
モジュール、現在のグループ、最大グループ
数 1,1,3
2,3,3
3,2,3
============実行 9==============
モジュール、現在のグループ、最大グループ
数 1,1,3
2,3,3
3,3,3
============Run 10==============//////ここに問題の
モジュール、現在のグループ、最大グループ
1,1,3
があります
2,4,3
3,1,3