ในภาษาซี nCr เรียกว่า การรวมกัน . nCr คือการเลือกวัตถุ r จากชุดของวัตถุ n โดยที่ลำดับของวัตถุไม่สำคัญ
nPr เรียกว่า การเรียงสับเปลี่ยน . nPr คือการจัดเรียงของวัตถุ 'r' จากชุดของวัตถุ 'n' ซึ่งควรอยู่ในลำดับหรือลำดับ
การเรียงสับเปลี่ยนและสูตรผสม
สูตรสำหรับค้นหาการเรียงสับเปลี่ยนและการรวมกันของตัวเลขที่กำหนดในภาษา C มีดังต่อไปนี้ -
- nCr =n!/(r!*(n-r)!)
- nPr =n!/(n-r)!.
ตรรกะที่ใช้ในการค้นหา nCr มีดังนี้ -
result = factorial(n)/(factorial(r)*factorial(n-r));
ตรรกะที่ใช้ในการค้นหา nPr มีดังนี้ -
result = factorial(n)/factorial(n-r);
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C เพื่อค้นหาการเรียงสับเปลี่ยนและการรวมกันของตัวเลขที่กำหนด -
#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;
} ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะสร้างผลลัพธ์ต่อไปนี้ -
Enter the value of n and r 5 2 5C2 = 10 5P2 = 20