Cho n P r, P là hoán vị, n tổng số, r số chọn sắp xếp. Tính nPr.
Hoán vị là sắp xếp theo trình tự. Khác tổ hợp (chỉ chọn).
Công thức:
nPr = n! / (n - r)!
Ví dụ
Đầu vào: n=5, r=2 Đầu ra: 20
Thuật toán
BAT DAU
B1: Hàm tính giai thừa cal_n(int n)
NẾU n <= 1 TRẢ VỀ 1
TRẢ VỀ n * cal_n(n-1)
B2: Hàm tính nPr
int nPr(int n, int r)
TRẢ VỀ cal_n(n) / cal_n(n-r)
B3: main()
n=5, r=2
In nPr(n,r)
KET THUC
Ví dụ
#include <stdio.h>
// Hàm giai thừa
int cal_n(int n) {
if (n <= 1)
return 1;
return n * cal_n(n - 1);
}
// Hàm nPr
int nPr(int n, int r) {
return cal_n(n) / cal_n(n - r);
}
int main() {
int n = 5, r = 2;
printf("Gia tri %dP%d la %d", n, r, nPr(n, r));
return 0;
}
Kết quả
Gia tri 5P2 la 20