Heim  >  Artikel  >  Backend-Entwicklung  >  C++ nimmt k Elemente als Gruppe und übernimmt die Anordnung von r Elementen aus n Elementen.

C++ nimmt k Elemente als Gruppe und übernimmt die Anordnung von r Elementen aus n Elementen.

WBOY
WBOYnach vorne
2023-09-07 20:37:021036Durchsuche

C++ nimmt k Elemente als Gruppe und übernimmt die Anordnung von r Elementen aus n Elementen.

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.

Lösung

Wir müssen eine Formel für dieses Problem formulieren, die uns die Antwort gibt.

Beispiel

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

Ausgabe

960

Erklärung des obigen Codes

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.

Fazit

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen