社区
C++ Builder
帖子详情
求排列数组的算法
juniorlin
2008-08-05 09:57:44
从1到100,随机抽取15个数,这15个数是从小到大排列的。求有多少个数组?并列出来。
...全文
98
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
打赏
举报
回复
很简单的,我编过通用算法!
<
算法
>
求
一个
数组
的所有
排列
组合
本文介绍了一种通过将
数组
排列
转换为二进制数字来快速计数的方法,利用2的幂次减一公式轻松
求
解
数组
的全
排列
组合,适用于不超过32元素的
数组
,且提供了相关代码实现和测试例子。
求
数组
全
排列
算法
的递归实现
本文介绍了一个使用递归方法实现的全
排列
算法
,并提供了一个具体的C++代码示例。该
算法
适用于任何类型的
数组
,并通过交换元素位置来生成所有可能的
排列
组合。
每日
算法
6 回溯
算法
求
数组
全
排列
本文围绕LeetCode第43题全
排列
问题展开,介绍了使用回溯
算法
求
解的思路。先确定
数组
元素个数与全
排列
数量的关系,通过指针移动选择元素生成
排列
。还解释了generate函数设为私有成员函数的原因,包括封装性、安全性和简洁接口等。
求
一个
数组
的全
排列
算法
本文详细介绍了如何通过
算法
找出一个给定
排列
的下一个更大的
排列
。包括寻找关键元素、交换元素和重新排序等步骤,适用于离散数学和组合数学的学习。
python3 ,
求
一个
数组
的全
排列
算法
本文介绍了一个使用递归实现的全
排列
算法
,通过遍历
数组
并不断交换元素位置的方法来生成所有可能的
排列
组合。该
算法
适用于
求
解数字或字符的所有
排列
情况。
C++ Builder
13,874
社区成员
102,696
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章