如何在 C++ 中計算組合數和排列數?


組合數和排列數是組合學的一部分。排列數是指一個元素集合在每次取出一個元素時可以做出的不同排列方式,每次取出幾個元素時可以做出的不同排列方式,或者每次取出全部元素時可以做出的不同排列方式。組合數是指一個元素集合在每次取出一個元素時可以做出的不同選擇方式,每次取出幾個元素時可以做出的不同選擇方式,或者每次取出全部元素時可以做出的不同選擇方式。

當有 n 個元素且需要排列 r 個元素時的排列數。

Permutations

當有 n 個元素且需要選擇 r 個元素時的組合數。

Combinations

一個用 C++ 計算組合數和排列數的程式如下所示。

示例

#include <iostream>
using namespace std;
int fact(int n) {
   if (n == 0 || n == 1)
   return 1;
   else
   return n * fact(n - 1);
}
int main() {
   int n, r, comb, per;
   cout<<"Enter n : ";
   cin>>n;
   cout<<"\nEnter r : ";
   cin>>r;
   comb = fact(n) / (fact(r) * fact(n-r));
   cout << "\nCombination : " << comb;
   per = fact(n) / fact(n-r);
   cout << "\nPermutation : " << per;
   return 0;
}

輸出

上述程式的輸出如下。

Enter n : 5
Enter r : 3
Combination : 10
Permutation : 60

更新時間: 2020 年 6 月 26 日

11K+ 次瀏覽

開啟你的 職業生涯

完成課程,獲得認證

開始
廣告