尝试计算 C 中数字和选择的有序排列和无序排列。
递归阶乘函数正在工作,排列结果给出随机存储位置
./排列
输入项目数量:5
输入要选择的数量:2
有1.#INF00有序排列
1.#INF00无序排列
#include <stdio.h>
double ordered_permutation(double total_items, double selection);
double unordered_permutation(double total_items, double selection);
double factorial( double number);
int main() {
double items;
double selection;
printf("Enter number of items: ");
scanf("%f", &items);
printf("Enter number to select: ");
scanf("%f", &selection);
double ordered_perm;
double unordered_perm;
ordered_perm = ordered_permutation( items, selection );
unordered_perm = unordered_permutation( items , selection );
printf("There are %f ordered permutations\nThere are %f unordered permutations\n", ordered_perm, unordered_perm);
return 0;
}
/* total_items!/ ( total_items! - selection! ) */
double ordered_permutation(double total_items, double selection){
double permutations;
permutations = factorial(total_items)/ ( factorial(total_items) - factorial(selection) );
return permutations;
}
/* total_items!/ ( ( total_items! - selection! ) selection! ) */
double unordered_permutation(double total_items, double selection){
double permutations;
permutations = factorial(total_items)/ ( ( factorial(total_items) - factorial(selection) ) * factorial(selection));
return permutations;
}
double factorial( double number){
if( number <= 1 )
return 1;
else
return number * factorial((number-1));
}
最佳答案
将分母调用更改为:
factorial(total_items - selection)
和
(factorial(total_items- selection) * factorial(selection))
关于计算有序和无序排列 - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33490207/