当前位置:首页 » 编程软件 » 编程计算组合数

编程计算组合数

发布时间: 2022-07-09 09:32:57

① 用c语言编程,求组合数!

#include <stdio.h>
void main()
{
void choose(int a,int b);
int a,b,c,d;
printf("请输入两个整数,以0,0结束\n");

scanf("%d,%d",&a,&b);
scanf("%d,%d",&c,&d);
if(c==0&&d==0)
choose(a,b);
}
void choose(int a,int b)
{
if(b>a)
{
printf("error!");
}
else
{
int fenmu=b,fenzi=a;
for(int i=a-1;i>a-b;i--)
fenzi*=i;
for(int j=b-1;j>1;j--)
fenmu*=j;
int temp;
temp=fenzi/fenmu;
printf("%d",temp);
}
}

② c语言编程问题,计算出从n 个不同元素中取出m 个元素(m≤n)的组合数。编写程序

#include<stdio.h>
double fact(double s)
{
double i,a=1;
for (i=1;i<=s;i++)
a=a*i;
return a;
}
int main()
{
double x,y,m,n;
printf("Enter m: ");
scanf("%lf",&m);
printf("Enter n: ");
scanf("%lf",&n);
y=fact(n-m);
m=fact(m);
n=fact(n);
x=n/(y*m);
printf("result=%.0f",x);
return 0;
}

③ c语言编程,组合数

#include<iostream>
using namespace std;double jiecheng(int n)
{
if(n==0)
return 0;
if(n==1)
return 1;
double m=n;
while(!(n<2))
{
m=m*(n-1);
n--;
}
return m;
}main()
{
int n,r;
double zuheshu;
printf("请输入n和r(n>1且r<=n):\n");
scanf("%d%d",&n,&r);
printf("组合数=%f",zuheshu=(jiecheng(n)/(jiecheng(r)*jiecheng(n-r))));
} 这是在VC++环境中编的,如果在tuboC中运行,只需将头文件更改下就可以了

④ C语言,计算组合数C(A,B)

#include <stdio.h>
double fact(int n);
int main()
{
int i,j,m,n;
double C;
printf("Enter in: ");
scanf("%d %d",&m,&n);
C = fact(n)/(fact(m)*fact(n-m));
printf("The result of C(m,n) is %.1f: ",C);
return 0;
}
double fact(int n)
{
int i;
double termainate;
termainate=1;
for(i=1;i<=n;i++)
{
termainate *= i;
}
return termainate;
}

⑤ C语言编程:按所给的公式计算组合数并输出结果:Cmn(m在上n在下)=n!/[(n-m)!m!]


我理解是这样的输入输出,如果是这样的输入输出的话,代码如下:

#include<stdio.h>

#defineN34

main()

{

inti,j,a[N][N],n;

for(i=0;i<N;i++)

a[i][0]=a[i][i]=1;

for(i=2;i<N;i++)

{

for(j=1;j<i;j++)

a[i][j]=a[i-1][j]+a[i-1][j-1];

}

for(i=0;i<N;i++)

while(scanf("%d",&n),n>=0)

{

for(i=0;i<n;i++)

printf("%d",a[n][i]);

printf("%d ",a[n][n]);

}

return0;

}

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

double 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数值,可追问

⑦ 计算组合数 如何编程

如果是指从m个不同元素中取出n(n≤m)个元素的所有组合的个数 的话
#include"stdio.h"
int fac(int n) /*阶乘函数*/
{
int s,i;
s=1;
for(i=1;i<=n;i++)
{
s*=i;
}
return(s);
}

main()
{
int n,m,c;
scanf("%d %d",&m,&n);
c=fac(m)/(fac(n)*fac(m-n));
printf("%d\n",c);
}

用的是C语言

⑧ 编程高手进~~~用C++编程计算组合数的值

#include <iostream>
using namespace std;

int fac(int m,int k);
int main()
{
int m,k;
cout <<"输入m,k:\n";
cin>>m>>k;
while(1){
if(m<k){
cout <<"m,k的取值不正确,请重新输入\n";
cin>>m>>k;
}
else break;
}
cout <<"m的k的组合数为:"<<fac(m,k)<<endl;
return 0;
}
int fac(int m,int k){
if(m<k)return -1;
int a=1,b=1,c=1;
for(int i=m;i>=1;i--)
a*=i;
for(int j=k;j>=1;j--)
b*=j;
for(int l=m-k;l>=1;l--)
c*=l;
return a/(b*c);
}

⑨ 编写程序 计算组合数的公式

var s,i,j,n:integer;
begin
readln(n);
s:=0;
for i:=1 to n do read(a[i]);
for j:=1 to n do s:=s+a[j];
writeln(n);
end.

⑩ 组合数编程

可以将结果加一个小数,如0.0000001,然后再处理就没问题了。

热点内容
视易锋云系统如何架设辅助服务器 发布:2025-02-09 06:47:08 浏览:768
mysql备份脚本shell 发布:2025-02-09 06:46:33 浏览:14
腾讯云服务器怎样调整分辨率 发布:2025-02-09 06:46:30 浏览:368
php上一个页面 发布:2025-02-09 06:41:25 浏览:488
改装配置后不想重启怎么办 发布:2025-02-09 06:36:40 浏览:445
算法复杂度定义 发布:2025-02-09 06:30:46 浏览:585
昵图源码接口 发布:2025-02-09 06:30:37 浏览:724
微信怎么没有支付密码 发布:2025-02-09 06:29:52 浏览:33
mplayer编译版 发布:2025-02-09 06:29:13 浏览:762
免费网盘源码 发布:2025-02-09 06:29:07 浏览:5