Maison > développement back-end > C++ > 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
Libérer: 2023-09-07 20:37:02
avant
1065 Les gens l'ont consulté

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
Copier après la connexion

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;
}
Copier après la connexion

Sortie

960
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal