Maison  >  Article  >  développement back-end  >  C++ prend k éléments en tant que groupe et prend la disposition de r éléments à partir de n éléments.

C++ prend k éléments en tant que groupe et prend la disposition de r éléments à partir de n éléments.

WBOY
WBOYavant
2023-09-07 20:37:021007parcourir

C++ prend k éléments en tant que groupe et prend la disposition de r éléments à partir de n éléments.

É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.

Solution

Nous devons formuler une formule pour ce problème qui nous donnera la réponse.

Exemple

#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;
}

Sortie

960

Explication du code ci-dessus

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.

Conclusion

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer