Erzeugen von Kombinationen in C mithilfe einfacher Permutationen
In C können Sie Kombinationen mithilfe eines einfachen Ansatzes mit Permutationen generieren. Diese Methode erfordert ein Verständnis des Konzepts der Permutationsgenerierung, bei dem die Reihenfolge der Elemente von Bedeutung ist.
Algorithmus-Übersicht:
Implementierung:
Hier ist eine Implementierung dieses Algorithmus unter Verwendung von 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; }
Erklärung:
Die Funktion next_permutation generiert die nächste lexikografische Permutation von boolescher Vektor. Indem wir über den Vektor iterieren und die Indizes der wahren Werte ausgeben, erhalten wir Kombinationen der ersten r Elemente in der Menge.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von Permutationen Kombinationen in C generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!