社区
C++ Builder
帖子详情
求排列数组的算法
juniorlin
2008-08-05 09:57:44
从1到100,随机抽取15个数,这15个数是从小到大排列的。求有多少个数组?并列出来。
...全文
63
6
打赏
收藏
求排列数组的算法
从1到100,随机抽取15个数,这15个数是从小到大排列的。求有多少个数组?并列出来。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
BCBPLC
2008-08-06
打赏
举报
回复
一分也没有,连个回音也没有
zhgwbzhd
2008-08-05
打赏
举报
回复
排列组合问题。不属于编程的范畴啊。
dingwei2134
2008-08-05
打赏
举报
回复
不知道你的问题出在什么地方,这个问题看上去不难啊
dingwei2134
2008-08-05
打赏
举报
回复
就是100*99*98*。。。。。*86/15*14*。。。。*1
BCBPLC
2008-08-05
打赏
举报
回复
//--------组合C(m,n)--------------------------------------------------------------
typedef
class Combination
{
private:
int m,n;
public:
int *Array; // 存放数
Combination(int m0,int n0);
~Combination();
void GetFirst(); // 初始化
bool GetNext(); // 取下一组
} Combination;
Combination::Combination(int m0,int n0)
{
m=m0;n=n0;
Array=new int[m+1];
GetFirst();
}
Combination::~Combination()
{
delete[] Array;
}
void Combination::GetFirst() // 无重复
{
for (int i=1;i<=m;i++)
Array[i]=i; // 首组下标,M个数
}
bool Combination::GetNext()
{ // 求下一组,若有返true,否则为假
for (int i=m;i>=1;i--)
{
int b=Array[i];
if (b<n-m+i) //x[i]是否到了极限n-m+i
{
for (int j=i;j<=m;j++)
{
b+=1;
Array[j]=b;
}
return(true);
}
}
return(false); // 元素全到了极限,该结束了
}
//---------------------------------------------------------------------------
char *d[100]; // 存放待排列的串
int m=4,n=6; // 从N数中取M个排列数
int js=0; // 组计数
d[1]="1"; d[2]="2";
d[3]="3"; d[4]="4";
d[5]="5"; d[6]="6";
Combination p(m,n); //C(4,6)=15组
// Permutation p(m,n); //P(4,6)=360组
// Repetition p(m,n); //R(4,6)=1296组
do
{
String s="";
for (int i=1;i<=m;i++)
s=s+String(d[p.Array[i]])+" ";
Memo1->Lines->Add(s); // 显示
js=js+1;
}
while (p.GetNext()); //找下一组排列
Memo1->Lines->Add("共 "+String(js)+" 组");
}
BCBPLC
2008-08-05
打赏
举报
回复
很简单的,我编过通用算法!
算法
分析视频课程:9篇系列讲座
算法
分析视频讲座涵盖分析
算法
的基础知识,包括解析组合学,是所有程序员都应当认真学习的。在这套视频中,我们首先讲解递推、生成函数和渐近分析的相关内容,然后引入解析组合学,包括有标记和无标记的组合类。之后讨论树、
排列
、字符串、字典树、单词和映射,以及这些
算法
的广泛应用。1111MicrosoftInternetExplorer402DocumentNotSpecified7.8 磅Normal0
C++:
排列
组合
算法
转载请注明出处1 介绍
排列
(Permutation)和组合(Combination)是两个基础的数学概念。计算
排列
与组合可以解决一些实际的工程问题,掌握
排列
组合计算的方法是十分重要的。目前,网上已经有一些计算
排列
组合的
算法
,比如[1]。这里我也给出一个组合计算方法。该计算方法采用了分治的思想,代码实现采用了递归的方式。2 组合
算法
2.1 设计思路组合问题:在序列An={1,2,3,4,5,6,.....
排列
组合公式及
排列
组合
算法
排列
组合公式
排列
组合公式/
排列
组合计算公式 公式P是指
排列
,从N个元素取M个进行
排列
。 公式C是指组合,从N个元素取M个进行组合,不进行
排列
。 N-元素的总个数 M参与选择的元素个数 !-阶乘,如 9!=9*8*7*6*5*4*3*2*1 从N到数M个,表达式应该为n*(n-1)*(n-2)..(n-m+1); 因为从n到(
C语言实现
排列
组合
c语言实现
排列
组合
算法
问题
排列
组合是
算法
常用的基本工具,如何在c语言中实现
排列
组合呢?思路如下: 首先看递归实现,由于递归将问题逐级分解,因此相对比较容易理解,但是需要消耗大量的栈空间,如果线程栈空间不够,那么就运行不下去了,而且函数调用开销也比较大。 (1) 全
排列
: 全
排列
表示把集合中元素的所有按照一定的顺序
排列
起来,使用P(n, n) = n!表示n
C++
排列
与组合
算法
详解
介绍一下
排列
组合
算法
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章