Tổ hợp (Combination) và hoán vị (Permutation) là một phần của Toán học tổ hợp (Combinatorics). Hoán vị là các sắp xếp khác nhau mà một tập hợp các phần tử có thể tạo thành nếu lấy từng phần tử một, một số phần tử hoặc tất cả các phần tử. Tổ hợp là các cách chọn khác nhau của các phần tử nếu lấy từng phần tử một, một số phần tử hoặc tất cả các phần tử.
Số hoán vị khi có tổng cộng n phần tử và cần sắp xếp r phần tử:

Số tổ hợp khi có tổng cộng n phần tử và cần chọn r phần tử:

Chương trình tính tổ hợp và hoán vị trong C++ như sau.
Ví dụ
#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 << "Nhập n: ";
cin >> n;
cout << "\nNhập r: ";
cin >> r;
comb = fact(n) / (fact(r) * fact(n - r));
cout << "\nTổ hợp: " << comb;
per = fact(n) / fact(n - r);
cout << "\nHoán vị: " << per;
return 0;
}
Kết quả
Nhập n: 5 Nhập r: 3 Tổ hợp: 10 Hoán vị: 60