単純な置換を使用した C での組み合わせの生成
C では、置換を伴う単純なアプローチを使用して組み合わせを生成できます。この方法では、要素の順序が重要となる置換生成の概念を理解する必要があります。
アルゴリズムの概要:
実装:
next_permutation を使用したこのアルゴリズムの実装は次のとおりです:
#include <iostream> #include <algorithm> #include <vector> int main() { int n, r; std::cin >> n; std::cin >> r; std::vector<bool> v(n); std::fill(v.end() - r, v.end(), true); do { for (int i = 0; i < n; ++i) { if (v[i]) { std::cout << (i + 1) << " "; } } std::cout << "\n"; } while (std::next_permutation(v.begin(), v.end())); return 0; }
説明:
next_permutation 関数は、次のブールベクトルの辞書順列。ベクトルを反復処理し、真の値のインデックスを出力することにより、セット内の最初の r 要素の組み合わせを取得します。
以上がC で順列を使用して組み合わせを生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。