C++中从n个数中取r个数组合的排列,会做么?
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/17 15:23:22
C++中从n个数中取r个数组合的排列,会做么?
如a[3]={1,2,3}
共有3中,分别为12,13,23,请列出所有组合,
如a[3]={1,2,3}
共有3中,分别为12,13,23,请列出所有组合,
以前写过类似的,
/*
5.从五种颜色的球中选出3个,输出每种可能的组合数.要求:
1) 定义枚举类型enum Color{Yellow,Blue,Black,Red,Green}
2) 编写函数void Display( Color c),//输出枚举常量c所对应的颜色字符串.如:c==Yellow时,则输出”Yellow”字符串
3) 编写函数void combination(int n,int k),实现从n个球中选出k个球的所有组合数.在此函数中调用函数Display(),输出每种组合所对应的颜色,如:
red yellow blue
red yellow black
……*/
#include
#include
enum Color{Yellow,Blue,Black,Red,Green};
//定义一个辅助数组,用来临时存放每一种组合结果
int temp[100];
void Display(enum Color c)
{
switch(c)
{
case Yellow:
printf("Yellow ");
break;
case Blue:
printf("Blue ");
break;
case Black:
printf("Black ");
break;
case Red:
printf("Red ");
break;
case Green:
printf("Green ");
break;
}
}
//通过递归实现 num记录抽取球的个数,开始的时候num=k
void combination(int n,int k,const int num)
{
int i,j;
for(i=n;i>=k;i--)
{
temp[k-1] = i-1; //记录一个位置
if(k>1)
combination(i-1,k-1,num);
else
{
for(j=num-1;j>=0;j--)
Display(temp[j]);
printf("\n");
}
}
}
int main()
{
combination(5,3,3);
system("pause");
return 0;
}
/*
5.从五种颜色的球中选出3个,输出每种可能的组合数.要求:
1) 定义枚举类型enum Color{Yellow,Blue,Black,Red,Green}
2) 编写函数void Display( Color c),//输出枚举常量c所对应的颜色字符串.如:c==Yellow时,则输出”Yellow”字符串
3) 编写函数void combination(int n,int k),实现从n个球中选出k个球的所有组合数.在此函数中调用函数Display(),输出每种组合所对应的颜色,如:
red yellow blue
red yellow black
……*/
#include
#include
enum Color{Yellow,Blue,Black,Red,Green};
//定义一个辅助数组,用来临时存放每一种组合结果
int temp[100];
void Display(enum Color c)
{
switch(c)
{
case Yellow:
printf("Yellow ");
break;
case Blue:
printf("Blue ");
break;
case Black:
printf("Black ");
break;
case Red:
printf("Red ");
break;
case Green:
printf("Green ");
break;
}
}
//通过递归实现 num记录抽取球的个数,开始的时候num=k
void combination(int n,int k,const int num)
{
int i,j;
for(i=n;i>=k;i--)
{
temp[k-1] = i-1; //记录一个位置
if(k>1)
combination(i-1,k-1,num);
else
{
for(j=num-1;j>=0;j--)
Display(temp[j]);
printf("\n");
}
}
}
int main()
{
combination(5,3,3);
system("pause");
return 0;
}
从n个自然数中任意取3个数进行组合,求组合公式.
线性代数中n个数的排列个数为什么是n!
从1至6中取数字3个,设每个组合的3个数.设每个组合都从小到大排列输出,求出所有可能结果.要求C程序源代码
pascal,从n个数中选择m个数,输出每一种组合,并统计总的个数
matlab求n个数中取m个的全组合.
从1到33中取6个数和值等于多少的组合最多
概率中排列的公式P(n,r)用英文怎么说?组合的公式C(n,r)呢?
用穷举法找出你n自然数中r个数的组合,例如n=5,r=3,可能的组合有543,532,452
C语言 n个数中任意取两个数求和的算法
n个数中取m个,自由组合如:1,2,3的组合有1;2;3;1,2;1,3;2,3;1,2,3.,求c算法!
C语言递归做一个题目数的组合问题.从1,2,…,n中取出m个数,将所有组合按照字典顺序列出.如n=3,m=2时,输出:1
9个数中任意选3个数排列成3位数,有多少种组合?