当前位置: 代码迷 >> C语言 >> [求助]求一算法(问题解决)
  详细解决方案

[求助]求一算法(问题解决)

热度:342   发布时间:2006-11-11 11:11:51.0
楼上的太强了!这种排列组合该怎样写代码呢? 请您提示。多谢!
----------------解决方案--------------------------------------------------------
如果只是计算的话,那就是C(18,4)-C(6,4)-2*C(5,4)-2*C(4,4);
只要有求组合数的函数就可以了,想必大家都应该知道吧.
C(n,m)=n!/((n-m)!m!)
----------------解决方案--------------------------------------------------------

数太大的时候会溢出的,所以数据类型要选好!还要想到好的算法!呵呵!我就犯了这个错误。


----------------解决方案--------------------------------------------------------
嗯,要想好算法就用数学知识,偶数学very poor,所以不清楚。
----------------解决方案--------------------------------------------------------
呵呵!有同感啊!
----------------解决方案--------------------------------------------------------
http://bbs.bc-cn.net/viewthread.php?tid=100958这个算是一种算法。
----------------解决方案--------------------------------------------------------

呵呵!这是计算组合的一个函数!
#include <stdio.h>

int main(void)
{
long m, k;

scanf("%ld%ld", &m, &k);

int zhang(long m,long k);
printf("%d", zhang(m,k));

return 0;
}

int zhang(long m,long k)
{
int i, j, sum = 1;

k = k > (m/2)?m - k:k;
for(i = m, j = 1;i > m - k;i --,j ++)
{
sum *= (float)i/j;
}

return sum;
}


----------------解决方案--------------------------------------------------------
所以大家想要设计出高水准的程序,就要在数学上下功夫哦,嘻嘻
----------------解决方案--------------------------------------------------------
  相关解决方案