欢迎来到天天文库
浏览记录
ID:38048999
大小:13.35 KB
页数:3页
时间:2019-05-24
《分别用递归法和穷举法实现全排列、排列与组合》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、(新浪博客:群众的好杰哥)用穷举法实现思路简单但是不推荐,大家都懂穷举存在效率问题,但是我大概写了一下,写的是对四个元素的全排列和组合出四个元素。递归的方法实现全排列、排列和组合所采用的递归思路是一致的,只是组合的时候需要考虑前一个元素的选择对后续选择的影响,因为毕竟是无序的,所以随机组合之后最好保留原始的元素顺序。以下函数均可编译执行。#includeusingnamespacestd;voidfull_exhaust(char*a){//穷举法排列An(4)for(inti=0;i2、3、a[k]<4、m_choose){for(inti=0;i5、i++){b[index-1]=i-1;if(index>1)combination(a,b,index-1,m_choose,i-1);else{for(intj=0;j>m;arrangement(a,0,m,n);//递归实现排列An6、(m)intk;cout<<"请输入需要组合的数字个数k:"<>k;char*b=newchar[k];combination(a,b,k,k,n);//递归实现组合Cn(m)system("pause");delete[]b;return0;}
2、3、a[k]<4、m_choose){for(inti=0;i5、i++){b[index-1]=i-1;if(index>1)combination(a,b,index-1,m_choose,i-1);else{for(intj=0;j>m;arrangement(a,0,m,n);//递归实现排列An6、(m)intk;cout<<"请输入需要组合的数字个数k:"<>k;char*b=newchar[k];combination(a,b,k,k,n);//递归实现组合Cn(m)system("pause");delete[]b;return0;}
3、a[k]<4、m_choose){for(inti=0;i5、i++){b[index-1]=i-1;if(index>1)combination(a,b,index-1,m_choose,i-1);else{for(intj=0;j>m;arrangement(a,0,m,n);//递归实现排列An6、(m)intk;cout<<"请输入需要组合的数字个数k:"<>k;char*b=newchar[k];combination(a,b,k,k,n);//递归实现组合Cn(m)system("pause");delete[]b;return0;}
4、m_choose){for(inti=0;i5、i++){b[index-1]=i-1;if(index>1)combination(a,b,index-1,m_choose,i-1);else{for(intj=0;j>m;arrangement(a,0,m,n);//递归实现排列An6、(m)intk;cout<<"请输入需要组合的数字个数k:"<>k;char*b=newchar[k];combination(a,b,k,k,n);//递归实现组合Cn(m)system("pause");delete[]b;return0;}
5、i++){b[index-1]=i-1;if(index>1)combination(a,b,index-1,m_choose,i-1);else{for(intj=0;j>m;arrangement(a,0,m,n);//递归实现排列An
6、(m)intk;cout<<"请输入需要组合的数字个数k:"<>k;char*b=newchar[k];combination(a,b,k,k,n);//递归实现组合Cn(m)system("pause");delete[]b;return0;}
此文档下载收益归作者所有