作業をより迅速かつ効率的に行うために、Java アプレットを作成しています。
ユーザーは、アイテムのリストを分割する必要がある 3 つのグループのサイズを定義します。リスト内の各項目は、3 つのグループのどれに配置されるかに基づいて、異なる値を持ちます。アプレットは、合計値が最も高い組み合わせを表示する必要があります。
例: 列を持つ整数の 2D 配列。項目番号、グループ 1 の値、グループ 2 の値、およびグループ 3 の値。
16 2 2 5
19 6 0 3
24 1 4 4
25 4 2 3
27 4 2 3
29 3 3 3
31 5 3 1
32 5 2 2
これにより、ユーザーはグループ 1 に 3 つのスロット、グループ 2 に 3 つのスロット、グループ 3 に 2 つのスロットを定義します。
アプレットは、順不同で次のソリューションを表示する必要があります。
Group 1: 19, 31, 32
Group 2: 24, 27, 29
Group 3: 16, 25
OR
Group 1: 19, 27, 32
Group 2: 24, 29, 31
Group 3: 16, 25
OR
Group 1: 19, 31, 32
Group 2: 24, 25, 29
Group 3: 16, 27
OR
Group 1: 19, 25, 32
Group 2: 24, 29, 31
Group 3: 16, 27
考えられるすべての順序で配列を実行するあまり効率的ではない方法を管理できますが、重複するソリューション (つまり、16,25 と 25,16) が生成されます。配列をシャッフルしなくても、考えられるすべての組み合わせを合計する方法があると確信しています。現時点では頭を包むことはできません。もしあなたの誰かがこれのための方法を持っていれば、私は最も感謝しています.