使用簡單排列在 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中文網其他相關文章!