子集生成
来源:互联网 发布:淘宝卖家学院光云科技 编辑:程序博客网 时间:2024/05/01 15:50
从书上学会了1~n的子集生成方法,在此贴出三种方法,是不是只能进行0~n的集合,博主想实现任意集合的子集输出,但只想出位向量法的,若有会的请赐教
#include<iostream>//第一种方法:二进制法using namespace std;voidprint(int n,int s){ for(int i=0;i<n;i++) if(s&(1<<i))cout<<i; cout<<endl;}int main(void){ int n=4; for(int i=0;i<(1<<n);i++) print(n,i); return 0;}
#include<iostream>using namespace std;int p[4]={1,2,3,4};//第二种方法:位向量法void print(int n,int *a,int cur){ if(n==cur){ for(int i=0;i<cur;i++) if(a[i])cout<<p[i]<<" "; cout<<endl; return ; } a[cur]=1; print(n,a,cur+1); a[cur]=0; print(n,a,cur+1);}int main(void){ int a[4]; print(4,a,0); return 0;}
#include<iostream>//第三种方法:增量构造法using namespace std;voidprint(int n,int *p,int cur){ for(int i=0;i<cur;i++) cout<<p[i]<<" "; cout<<endl; int s=cur?p[cur-1]+1:0; for(int i=s;i<n;i++){ p[cur]=i; print(n,p,cur+1); }}int main(void){ int p[4]; print(4,p,0); return 0;}
0 0
- 生成子集
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 生成子集
- 生成子集
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- 子集生成
- Java中JSON格式的简单应用例子
- 加法变乘法
- React和Less错误解决集
- java概述
- Apache Ambari 01 - Ambari Mirror 安装部署
- 子集生成
- 虚拟机找不到/mnt/hgfs挂载目录
- RecyclerView自定义ItemDecoration
- mysql启动失败:mysql服务无法启动 服务没有报告任何错误 排查过程及解决方法
- Dumb-Init进程信号处理
- Android HTTP操作(三)
- iOS 开发command+左键 不能索引 出现问号 Xcode一直处于indexing状态
- 一些有用的SAP技术TCODE
- 交换两个数据的方法