【发布时间】:2015-11-03 01:57:33
【问题描述】:
尝试计算 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));
}
【问题讨论】:
标签: c recursion combinations permutation combinatorics