Gegeben n, r, k, jetzt müssen wir herausfinden, wie man r Elemente aus n auswählt, damit bestimmte k Elemente immer zusammen erscheinen, z.
Input : n = 8, r = 5, k = 2 Output : 960 Input : n = 6, r = 2, k = 2 Output : 2
Wir brauchen etwas Wissen, um dieses Problem zu lösen, denn dieses Problem erfordert, dass wir die Anordnung von n und r so finden, dass k Objekte zusammenkommen.
Wir müssen eine Formel für dieses Problem formulieren, die uns die Antwort gibt.
#include <bits/stdc++.h> using namespace std; int fact(int n){ // function to calculate factorial of a number if(n <= 1) return 1; return n * fact(n-1); } int npr(int n, int r){ // finding permutation int pnr = fact(n) / fact(n - r); return pnr; } int countPermutations(int n, int r, int k){ // the formula that we came up with return fact(k) * (r - k + 1) * npr(n - k, r - k); } int main(){ int n = 8; int r = 5; int k = 2; cout << countPermutations(n, r, k); return 0; }
960
In der obigen Methode versuchen wir, unsere Formel zu entwerfen, um die Antwort auf diese Frage zu berechnen. Die von uns entworfene Formel ist (k!) * (r – k + 1) *P(n-k, r-k). (P(x, y) ist die Anzahl der Permutationen, die y aus x auswählen), also entwickeln wir die Formel und berechnen die Antwort.
In diesem Tutorial haben wir das Problem gelöst, Permutationen zu finden, die r Dinge mit k Dingen gleichzeitig zusammenfügen. Wir haben auch das C++-Programm für dieses Problem und die vollständige Methode zu seiner Lösung gelernt (Normal).
Wir können das gleiche Programm in anderen Sprachen wie C, Java, Python und anderen Sprachen schreiben. Wir hoffen, dass Sie dieses Tutorial hilfreich fanden.
Das obige ist der detaillierte Inhalt vonC++ nimmt k Elemente als Gruppe und übernimmt die Anordnung von r Elementen aus n Elementen.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!