X要素のリストを取得するとき、どのようにしてこれらの要素のすべての倍精度化、三重化、...(Y)の組み合わせを取得できますか?
Yは必要な組み合わせのサイズです。例:Y = 2の場合は、すべてのペアを取得する必要があります。
同じ組み合わせを2回与えないでください(例:[a、b]と[b、a]は同じ組み合わせです)リスト内の要素のすべての組み合わせを取得するにはどうすればよいですか?
答えて
リストをコピーしてください。
リストが空の場合、組み合わせはありません。
サイズ1のすべての組み合わせを取得するには、各要素を順番に調べます。
サイズn + 1のすべての組み合わせを取得するには、最初に最初の要素を削除します。その後、残りのリストのサイズnとその最初の要素のすべての組み合わせを取得します。その後、残りのリストのサイズn + 1のすべての組み合わせを取得し、最初の要素を追加しないでください。
これで完了です。
あなたは気に入って、最適化のために要素をコピー/除去するふりをするだけです。
私は再帰を使用する必要があります配列のサイズは等しいか2より大きいですか?それで私は重複を避けることができますか?それらを避けるために、すべての要素を1つずつ削除する必要がありますか? –
あなたは2からYに対するTを反復し、サイズXバックに前方及びT 1SにXtの0で埋める持つ配列Aを作成し、その後、以下のコードを有することができる:
do{
//1s in array A now correspond to a valid combination
}while(std::next_permutation(A,A+X));
ループは、サイズtのすべての組み合わせが反復されると停止する。
next_permutationは、アルゴリズムを次の辞書順に並べ替えるか、配列が辞書編集上最も大きな順列になっている場合はfalseを返す。その複雑さはO(n)です。なぜなら、配列を一度反復する必要があるからです。だから問題にはならないでしょう。プロセス全体の複雑さの合計は、O(2^n * n)によって制限されます。だからここ
は、例えば、擬似コード
D[X] = {1,2,3,4} Y = 3 //the input
For t = 2,3,..,Y
A[X] = {0,...,0,1,...,1} // X - t 0s and t 1s
Do
For j = 0,1,...,X-1
if A[j] == 1
output D[j]
end if
end for
output newline
While next_permutation(A,A+X)
end for
が出力意志が
3 4
2 4
2 3
1 4
1 3
1 2
2 3 4
1 3 4
1 2 4
1 2 3
これは構造で動作しますか?そして、これは私にユニークな組み合わせしか持てないのですか? (結果に[a、b]と[b、a]は含まれていません) –
辞書順に大きな順列を生成するので、同じ順列を与えません。 –
はい、0と1だけが並べ替えられているので構造体と一緒に動作します。 –
- 1. Rでは、リスト内のすべての要素の組み合わせを取得して連結するにはどうすればよいですか?
- 2. 各リストから要素を1つ選択するすべての組み合わせを取得するにはどうすればよいですか?
- 3. リスト内の要素からすべての組み合わせを生成するにはどうすればよいですか?例えば
- 4. リスト内の要素の2^nは-2組み合わせ
- 5. 各組み合わせのリストの1つの要素の組み合わせ
- 6. いくつかのリストの要素を組み合わせる
- 7. リストを含むディクショナリで値の組み合わせを探すにはどうすればよいですか?
- 8. リストの要素のすべての可能な組み合わせ
- 9. リスト内の要素の組み合わせに関数を適用する
- 10. リストの辞書をすべての組み合わせの辞書のリストにするにはどうすればよいですか?
- 11. nchoosek()を使用して行列の行のすべての組み合わせを取得するにはどうすればよいですか?
- 12. リスト内の要素の高速組み合わせR
- 13. Perlでは、リストのすべての組み合わせをどのように生成できますか?
- 14. リストをすべての組み合わせに分割する
- 15. ビットからすべての組み合わせを取得するには?
- 16. リストのリストからn番目の組み合わせまでのすべてのユニークな組み合わせを取得する
- 17. 、要素のすべての兄弟要素を取得するにはどうすればいいですか?
- 18. itertoolsまたはlisttoolsを使用せずにリストのすべての組み合わせを作成するにはどうすればよいですか?
- 19. 単語の文字のすべての固有の組み合わせを取得するにはどうすればよいですか?
- 20. html要素を反復処理して、javascript/jQueryと組み合わせた時間を取得するにはどうすればよいですか?
- 21. リスト内の要素の可能な組み合わせをすべて生成する
- 22. GridSearchCVで得られたすべての組み合わせをどのように評価できますか?
- 23. 距離のある2つの要素のすべての組み合わせを取得する
- 24. 重複要素を持たないリスト要素のすべての組み合わせ
- 25. 同じテーブルフィールドの要素のすべての組み合わせを取得するためのMySqlクエリ
- 26. リスト内のすべての可能な組み合わせを作成する
- 27. リストのすべての組み合わせを見つける
- 28. マルチレベル配列のすべての組み合わせをリストする再帰関数を作成するにはどうすればよいですか?
- 29. 複数のフィードを組み合わせてフィルタリングするにはどうすればよいですか?
- 30. ビンストークチューブ内のすべてのジョブのリストを取得するにはどうすればよいですか?
で組み合わせを見[実装の順列・組み合わせ-と-のPowerset・イン・C++]のように見えています(https://stackoverflow.com/a/25556248/2684539) – Jarod42
質問を編集して[これまでのコード](http://whathaveyoutried.com)を表示してください。問題を抱えているコードのアウトライン(ただし、好ましくは[mcve])を含める必要があります。次に、特定の問題を解決することができます。 [ask]も読んでください。 –