Computer >> Máy Tính >  >> Lập trình >> lập trình C

C Chương trình tìm nCr và nPr.

Trong ngôn ngữ lập trình C, nCr được gọi là sự kết hợp . nCr là sự lựa chọn r đối tượng từ tập hợp n đối tượng, trong đó thứ tự của các đối tượng không quan trọng.

nPr được gọi là hoán vị . nPr là sự sắp xếp các đối tượng 'r' từ một tập hợp các đối tượng 'n', các đối tượng này phải theo một thứ tự hoặc một chuỗi.

Hoán vị và công thức kết hợp

Các công thức để tìm hoán vị và kết hợp của các số đã cho trong ngôn ngữ C được đưa ra dưới đây -

  • nCr =n! / (r! * (n-r)!)
  • nPr =n! / (n-r) !.

Logic được sử dụng để tìm nCr như sau -

result = factorial(n)/(factorial(r)*factorial(n-r));

Logic được sử dụng để tìm nPr như sau -

result = factorial(n)/factorial(n-r);

Ví dụ

Sau đây là chương trình C để tìm hoán vị và tổ hợp của các số đã cho -

#include <stdio.h>
long factorial(int);
long find_ncr(int, int);
long find_npr(int, int);
int main(){
   int n, r;
   long ncr, npr;
   printf("Enter the value of n and r\n");
   scanf("%d%d",&n,&r);
   ncr = find_ncr(n, r);
   npr = find_npr(n, r);
   printf("%dC%d = %ld\n", n, r, ncr);
   printf("%dP%d = %ld\n", n, r, npr);
   return 0;
}
long find_ncr(int n, int r) {
   long result;
   result = factorial(n)/(factorial(r)*factorial(n-r));
   return result;
}
long find_npr(int n, int r) {
   long result;
   result = factorial(n)/factorial(n-r);
   return result;
}
long factorial(int n) {
   int c;
   long result = 1;
   for (c = 1; c <= n; c++)
   result = result*c;
   return result;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

Enter the value of n and r
5 2
5C2 = 10
5P2 = 20