0

私は自分のプロジェクトの 1 つで少し問題に直面しています。皆さんが問題を明確にしてくれることを願っています。

ケースはこのようなものです。12 人のグループを 4 つのグループに分けました。これは、シリーズ 3 ラウンドの最初のラインナップです。

私の問題はこれです。グループ内の人々が以前に会ったことがないように、次の2つのラウンドでこれらのグループを再レンダリングするにはどうすればよいですか?

再レンダリングされたグループを一意にする必要があります。人物 1 は、次の 2 ラウンドで人物 2 または人物 3 のいずれかとグループに参加することはありません。また、人物 1 が第 2 ラウンドで人物 4 および人物 5 とグループを形成した場合、これらの人物も最後のラウンドで除外されます。

グループ1

人物 1、人物 2、人物 3

グループ 2

人 4、人 5、人 6

グループ 3

7 人、8 人、9 人

グループ 4

10人目、11人目、12人目

4

2 に答える 2

1

組み合わせアルゴリズムが必要なようです。パフォーマンスなどの組み合わせの詳細については、こちらを確認してください。説明付きのコード サンプルについては、こちらを確認してください。
あなたの具体的な実装は、繰り返しなしで一度に3つ取る12人の組み合わせです。これにより、220 の可能なグループが得られます。
同じ 2 人が以前にグループに属していたかどうかを確認する 1 つの方法は、形成されたグループの記録を保持し、その記録に対して新しいグループをチェックして、比較されている 2 つのグループに 2 人が共通しているかどうかを確認することです。

于 2013-01-07T21:51:21.620 に答える
1

これを試して:

for (i = 0 to NrGroups-1) do // NrGroups = 4
{
   newGroup + (i+1) = Arr[i] + 
                      Arr[(i+(Arr.length/NrPersonsInGroup))%Arr.length] + 
                      Arr[(i+(Arr.length/NrPersonsInGroup+1))%Arr.length]; // NrPersonsInGroup = 3
}
于 2013-01-07T06:16:33.630 に答える