Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C ค้นหา nCr และ nPr


ในภาษาซี 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