集合子集的两种求法.(写着玩,大家看看)
#include <stdio.h>
#define SIZE 3
int a[] = {1,2,3};
int status[] = {-1,-1,-1};
void next(int l)//利用组合方法直接构造子集
{
int i;
for(i=0;i<SIZE;i++)
if(status[i]!=-1)
printf("%d ",a[status[i]]);
printf("\n");
if(l==SIZE)
return;
for(i=l;i<SIZE;i++)
{
status[l] = i;
next(i+1);
status[l] = -1;
}
}
void enumit(int l)//穷举集合每个元素的状态(0或1)
{
int i;
if(l==SIZE)
{
for(i=0;i<SIZE;i++)
if(status[i] == 0)
printf("%d ",a[i]);
printf("\n");
return;
}
else
{
status[l] = 0;
enumit(l+1);
status[l] = -1;
enumit(l+1);
}
}
int main()
{
//next(0);
enumit(0);
system("PAUSE");
return 0;
}
#define SIZE 3
int a[] = {1,2,3};
int status[] = {-1,-1,-1};
void next(int l)//利用组合方法直接构造子集
{
int i;
for(i=0;i<SIZE;i++)
if(status[i]!=-1)
printf("%d ",a[status[i]]);
printf("\n");
if(l==SIZE)
return;
for(i=l;i<SIZE;i++)
{
status[l] = i;
next(i+1);
status[l] = -1;
}
}
void enumit(int l)//穷举集合每个元素的状态(0或1)
{
int i;
if(l==SIZE)
{
for(i=0;i<SIZE;i++)
if(status[i] == 0)
printf("%d ",a[i]);
printf("\n");
return;
}
else
{
status[l] = 0;
enumit(l+1);
status[l] = -1;
enumit(l+1);
}
}
int main()
{
//next(0);
enumit(0);
system("PAUSE");
return 0;
}
...全文
相关推荐
输出集合的所有子集
用于输出一个集合的所有子集,采用两种方法实现,值得一看!
Python实现求一个集合所有子集的示例
今天小编就为大家分享一篇Python 实现求一个集合所有子集的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
求一个集合子集的算法示例
求一个集合子集的算法示例, 用两种方法解,一种是基于回溯的递归求解,一种基于位域映射.
python判断一个集合是否为另一个集合的子集方法
实例如下所示: a = [1,2,3,4] b = set([1,2]) b.issubset(a) 以上这篇python判断一个集合是否为另一个集合的子集方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:跟老齐学Python之集合(set)Python set集合类型操作总结Python中的集合类型知识讲解Python通过递归遍历出集合中所有元素的方法Python中列表、字典、元组、集合数据结构整理python3中set(集合)的语法总结分享python执行系统命令后获取返回值的几种
Java 得到集合中所有子集
本文主要介绍了Java 得到集合中所有子集的方法。具有很好的参考价值,下面跟着小编一起来看下吧


