使用简单排列在 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中文网其他相关文章!