如何在 C++ 中计算组合数和排列数?
组合数和排列数是组合学的一部分。排列数是指一个元素集合在每次取出一个元素时可以做出的不同排列方式,每次取出几个元素时可以做出的不同排列方式,或者每次取出全部元素时可以做出的不同排列方式。组合数是指一个元素集合在每次取出一个元素时可以做出的不同选择方式,每次取出几个元素时可以做出的不同选择方式,或者每次取出全部元素时可以做出的不同选择方式。
当有 n 个元素且需要排列 r 个元素时的排列数。
当有 n 个元素且需要选择 r 个元素时的组合数。
一个用 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
广告