0

たとえば、配列があり["Sam", "Mary", "John"]ます。
3 つのうち 2 つを選択する組み合わせを表示したいと思います
。結果は次のようになります。

[Sam, Mary]
[Sam, John]
[Mary, John] 

私はたくさんの研究をしましたが、まだそれを行う方法を知りません。
もちろん、この例には 3 人しか含まれていません。
実際には、合計人数はもっと多くなります (例: 15)

これが私が見つけたものです:
nからk要素のすべての組み合わせを返すアルゴリズム

Javaで選択記法を実装する良い方法は何ですか?

それらのいくつかは、nCr の値を表示するだけで、組み合わせを示していません。

4

4 に答える 4

0

これはおそらく完璧ではありませんが、正しい軌道に乗るはずです。各要素の組み合わせを取得する関数を作成します。次に、各要素をループして、それぞれの関数を呼び出すだけです。

int num = 2; //Number of elements per combination

for(int i=0; i <= (array.length - num); i++) {
    String comb = "[" + array[i];
    comb += getComb(i,num);
    comb += "]";
    println(comb);
}

String getComb(int i, int num) {
    int counter = 1;
    String s = "";

    while(counter < num) {
        s += ", " + array[i+counter];
        counter++;
    }

    return s;
}
于 2013-08-07T14:50:32.203 に答える