c语言编程函数求组合数 c语言求组合数公式

C语言编程实现求组合数P=C(n,k)的值

double

创新互联建站是一家专业提供阿里地区企业网站建设,专注与网站建设、做网站、HTML5、小程序制作等业务。10年已为阿里地区众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

lnchoose(int

n,

int

m)

{

if

(m

n)

{

return

0;

}

if

(m

n/2.0)

{

m

=

n-m;

}

double

s1

=

0;

for

(int

i=m+1;

i=n;

i++)

{

s1

+=

log((double)i);

}

double

s2

=

0;

int

ub

=

n-m;

for

(int

i=2;

i=ub;

i++)

{

s2

+=

log((double)i);

}

return

s1-s2;

}

double

choose(int

n,

int

m)

{

if

(m

n)

{

return

0;

}

return

exp(lnchoose(n,

m));

}

用之前调用math.h头文件,用的话直接把值赋给choose()这个函数即可,直接调用上面的函数,返回一个double数值,可追问

c语言编程,组合数

#includeiostream

using namespace std;double jiecheng(int n)

{

if(n==0)

return 0;

if(n==1)

return 1;

double m=n;

while(!(n2))

{

m=m*(n-1);

n--;

}

return m;

}main()

{

int n,r;

double zuheshu;

printf("请输入n和r(n1且r=n):\n");

scanf("%d%d",n,r);

printf("组合数=%f",zuheshu=(jiecheng(n)/(jiecheng(r)*jiecheng(n-r))));

} 这是在VC++环境中编的,如果在tuboC中运行,只需将头文件更改下就可以了

c语言中怎么算组合数呢?

组合数C(n,m)的计算公式为:

例题:

扩展资料:

C(n,m),表示的是从 n 个不同元素中每次取出 m 个不同元素  ,不管其顺序合成一组,称为从 n 个元素中不重复地选取 m 个元素的一个组合。

参考资料:百度百科_组合数

C语言求组合数

double fact(long num)

{

for (long i = 1; num  0; num--)

{

i *= num;

}    

}

int main()

{

long m;

long n;

long C;

scanf("%ld %ld", m, n);

C = fact(n) / ((fact(m)) * fact(n-m));

printf("%ld",C);

return 0;

}


本文名称:c语言编程函数求组合数 c语言求组合数公式
链接分享:http://scyanting.com/article/ddjpjei.html