Étant donné n, r, k, nous devons maintenant comprendre comment sélectionner r éléments parmi n afin que k éléments spécifiques apparaissent toujours ensemble, par exemple.
Input : n = 8, r = 5, k = 2 Output : 960 Input : n = 6, r = 2, k = 2 Output : 2
Nous avons besoin de quelques connaissances pour résoudre ce problème, car ce problème nous oblige à trouver l'arrangement de n et r tel que k objets se réunissent.
Nous devons formuler une formule pour ce problème qui nous donnera la réponse.
#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
Dans la méthode ci-dessus, nous essayons de concevoir notre formule pour calculer la réponse à cette question, la formule que nous avons conçue est (k!) * (r - k + 1) *P(n-k, rk). (P(x, y) est le nombre de permutations qui sélectionnent y à partir de x), nous trouvons donc la formule et calculons la réponse.
Dans ce tutoriel, nous avons résolu le problème de trouver des permutations qui rassemblent r choses avec k choses à la fois. Nous avons également appris le programme C++ pour ce problème et la méthode complète pour le résoudre (Normal).
Nous pouvons écrire le même programme dans d'autres langages, tels que C, Java, Python et d'autres langages. Nous espérons que vous avez trouvé ce tutoriel utile.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!