给定数字1~n,输出从中选出m个数的排列和组合。
为了简单起见,采用递归算法来描述,首先解决排列问题:
这个算法不太漂亮,用到了两个全局变量:
int ARR[] = { 1,2,3,4,5}; // 用来输出的全局缓冲区
int PERM_LEN; // 排列的长度
voidpermutation( int arr[], int n, int m )
{
int i;
if( m== 0 )
{
for(i=0;i<PERM_LEN;++i)
printf(" %d",ARR[i]);
printf("\n");
return;
}
for(i=0; i<n; ++i)
{
swap( arr[i], arr[0] );
permutation( arr+1, n-1, m-1 );
swap( arr[i], arr[0] );
}
}
算法比较简单,不详细说明了。
组合算法比较有趣,先看99年左右的高程辅导书上的解法,
这里面使用了一个全局变量,用来控制输出宽度:
intk;// 用来控制输出宽度的全局变量,注意取值为组合的宽度r
void comb2( int n,int r)
{
int i;
for( i=n;i>=r;i--)
{
if( i!=n && k!=r )
{
int temp ;
for( temp =1; temp<=(k-r)*3;temp++)
printf(" ");
}
printf("%3d",i);
if( r> 1 )
comb2( i-1, r-1 );
else
printf("\n");
}
}
原理也很简单,不详细说明了。
这种组合的输出结果如下:
5 4 3
2
1
3 2
1
2 1
4 3 2
1
2 1
3 2 1
自己也写了一下,使用一个缓冲区记录选取的组合数,来输出全部的组合序列:
算法如下:
void comb( int n, int m ,int buff[], int& count )//count=0
{
if( m == 0 )
{// 递归退出条件,打印回车
for( int i=0;i<count;++i)
printf("%d ", buff[i] );
printf("\n");
return;
}
for( int i=0; i<= n - m; ++i )
{
buff[count++] = n-i;
comb( n-i-1, m-1,buff,count );
--count;
}
}
输出的结果如下:
5 4 3
5 4 2
5 4 1
5 3 2
5 3 1
5 2 1
4 3 2
4 3 1
4 2 1
3 2 1
相关推荐
base zz zz zz zz zz base zz zz zz zz zz base zz zz zz zz zz base zz zz zz zz zz
NULL 博文链接:https://summerbell.iteye.com/blog/390774
ZZ561401.CAB ZZ561401.CAB ZZ561401.CAB
wincc SIMATIC WinCC是第一个使用最新的32位技术的过程监视系统,具有良好的开放性和灵活性。 从面市伊始,用户就对SIMATIC WinCC印象深刻。
算法文档无代码组合游戏1算法文档无代码组合游戏1提取方式是百度网盘分享地址
然后,我们为两种实验设置提供了差分分布的结果,一种用于搜索异常三重玻色子玻色子耦合,另一种用于希格斯分析中的四个带电轻子最终状态通道。 我们发现,近似的NNLO校正量很大,在Z玻色子或前轻子的高横向动量下...
在CAD中想要快速测量长度,在CAD工具栏找到加载应用程序,再点击加载 加载成功后在输入栏输入“zz”(不分大小写)在选择你需要测量的线段即可。
基于小波变换的红外和可见光图像融合算法的研究.
算法文档无代码解析一类组合游戏提取方式是百度网盘分享地址
,主图指标,顶底信号,突破,转折信号,都很明显
一维量子XX-ZZ模型的关联函数与协作参量,钟鸣,,采用把一维量子XX-ZZ模型映射到周期XY模型的方法,数值研究了该模型的关联函数及量子相变类型,以及协作参量在相变点附近的行为。�
ZZ Fibo Trader 简单地展示了 Simple ZZ Fibo 的使用, 它在之字转向的波动中绘制斐波那契线。另外,算法还展示了通过抛物线系统进行移动止损的操作。
程序员的编辑器——VIM(zz) - 饮水思源
留言本改自柏图留言本 BTB 1.2 管理员:zz809 密 码:zz809.com
zz_layer.il是源代码,install.bat是安装的 使用举例:zz 1-3 4 126 127 层号定义,与PADS类似:1~120是etch ;SolderMask: 121(top) 128(bot) ;Silkscreen: 126(top) 129(bot) ;Assembly: 127(top) 130(bot) ;Paste...
ZZ公司安全生产守则.docx
基于国家标准的endnote的输出样式,适用于学生党论文插入文献参考,较为方便。endnote论文神器。
zz;ldkfjntmtmsbggyyessdd
ZZ-2021030 网络搭建与应用赛项赛卷《网络环境》.pdf