有大lao知道这个程序的具体功能吗?求解
#include
double factorial(int n) {
int i;
double mul;
mul = 1;
for(i = 1; i <= n; ++i)
mul *= i;
return mul;
}
int combinations(int n, int k) {
return factorial(n) / (factorial(k) * factorial(n - k));
}
int main(void) {
int n, k;
printf("输入总的元素个数: ");
scanf("%d", &n);
printf("输入要取出的元素个数: ");
scanf("%d", &k);
printf("C(%d,%d)=%d\n", n, k, combinations(n, k));
return 0;
}
算排列组合的
//算排列组合 C 5 上面 3 下面结果为 10
#include<stdio.h>
double factorial(int n) {//相当于求 n 的阶层
int i;
double mul;
mul = 1;
for(i = 1; i <= n; ++i)
mul *= i;
return mul;
}
int combinations(int n, int k) {// n 的阶层除以(k 的阶层 + n-k 的阶层)
return factorial(n) / (factorial(k) * factorial(n - k));
}
int main(void) {
int n, k;
printf("输入总的元素个数: ");
scanf("%d", &n);
printf("输入要取出的元素个数: ");
scanf("%d", &k);
printf("C(%d,%d)=%d\n", n, k, combinations(n, k));
return 0;
}
排列与组合Cnm
不就是n的阶乘除以k的阶乘与(n-k)的阶乘吗?
计算在n个不同的球中取出k个球,问有多少种的取法。