はじめに
順列と組み合わせは、2つの異なる数学的概念です。順列は、特定の順序でオブジェクトを配置することです。組み合わせは、選択されたオブジェクトの順序に関係なく、セットからオブジェクトを選択することです。この実験では、C言語を使って順列と組み合わせをどのように計算するか学びます。
順列と組み合わせは、2つの異なる数学的概念です。順列は、特定の順序でオブジェクトを配置することです。組み合わせは、選択されたオブジェクトの順序に関係なく、セットからオブジェクトを選択することです。この実験では、C言語を使って順列と組み合わせをどのように計算するか学びます。
まず、~/project/
ディレクトリに新しいファイル main.c
を作成し、ヘッダーファイルを含めるための初期コードとメイン関数を書きましょう。
#include <stdio.h>
int main() {
printf("Permutation and Combination in C Language\n\n");
// Code for permutation and combination calculation will be added here
return 0;
}
順列と組み合わせを計算するには、数の階乗を計算する必要があります。階乗は再帰的に計算できます。メイン関数の外に次のコードを追加します。
long factorial(int num) {
if (num == 0) {
return 1;
}
else {
return num * factorial(num - 1);
}
}
この関数は整数を引数として受け取り、その階乗を返します。
nCr を計算するために、メイン関数の外に次の関数を追加します。
long nCr(int n, int r) {
if (n < r) {
return -1;
}
else {
return factorial(n) / (factorial(r) * factorial(n - r));
}
}
この関数は、2つの整数 n と r を引数として受け取り、nCr の値を返します。nCr の値は、n の階乗を r の階乗と n-r の階乗の積で割ることによって計算されます。
nPr を計算するために、メイン関数の外に次の関数を追加します。
long nPr(int n, int r) {
if (n < r) {
return -1;
}
else {
return factorial(n) / factorial(n - r);
}
}
この関数は、2つの整数 n と r を引数として受け取り、nPr の値を返します。nPr の値は、n の階乗を n-r の階乗で割ることによって計算されます。
入力を受け取り、結果を表示するために、メイン関数の中に次のコードを追加します。
int main()
{
int n, r;
printf("Enter the value of n:");
scanf("%d", &n);
printf("Enter the value of r:");
scanf("%d", &r);
printf("nCr is %ld\n", nCr(n, r));
printf("nPr is %ld\n", nPr(n, r));
return 0;
}
このコードは、ユーザーから n と r の入力値を受け取り、それぞれの値を計算するために nCr() 関数と nPr() 関数を呼び出し、その後それらを表示します。
最終的なコードは次のようになります。
#include <stdio.h>
long factorial(int num) {
if (num == 0) {
return 1;
}
else {
return num * factorial(num - 1);
}
}
long nCr(int n, int r) {
if (n < r) {
return -1;
}
else {
return factorial(n) / (factorial(r) * factorial(n - r));
}
}
long nPr(int n, int r) {
if (n < r) {
return -1;
}
else {
return factorial(n) / factorial(n - r);
}
}
int main()
{
int n, r;
printf("Enter the value of n:");
scanf("%d", &n);
printf("\nEnter the value of r:");
scanf("%d", &r);
printf("nCr is %ld\n", nCr(n, r));
printf("nPr is %ld\n", nPr(n, r));
return 0;
}
この実験では、C言語で順列と組み合わせを計算する方法を学びました。階乗、nCr、およびnPrを計算する関数を書きました。また、プログラムのドライバーコードも書きました。上記の手順に従うことで、ユーザー入力に対する順列と組み合わせを計算できます。