穷举子集合

问题描述:给定一个集合,列举出这个结合的所有非空子集合。

例如:{A,B,C},非空子集合为:{A}{B}{C}{AB}{AC}{BC}{ABC}

这里采用编码的算法,就是为每一位进行编码,0表示对应的元素不出现,1表示对应的元素出现。

那么ABC对应的编码为

0.    000            {}

1.    001            {C}

2.    010           {B}

3.    011           {BC}

4.    100           {A}

5.    101           {AC}

6.    110           {AB}

7.    111           {ABC}

这里提供两种方法,

       第一种方法fun1是自己手动将其对应的二进制位求出来,这种方法更加通用,推荐大家掌握这种方法。

       第二种方法fun2是利用Java自带的包,可以将指定的整数转换为二进制形式。

Java代码如下:

穷举子集合
穷举子集合
                        {                        String ziji=""                                                         a=a/2               System.out.println(i+"  "+       
                                String ziji=""                 String binary=Integer.toBinaryString(i);                                                                     
               System.out.println(i+"  "+                         String str="ABC"     }
View Code

输出结果为:

1 C
2 B
3 BC
4 A
5 AC
6 AB
7 ABC

1 C
2 B
3 BC
4 A
5 AC
6 AB
7 ABC

更多相关文章
  • 关于背包问题的题目,前人之述备矣,这里只讨论实现 输入: n ca w_1 v_1 w_2 v_2 ... w_n v_n 其中,n是物品总数,ca是背包大小,w_n是第n个物品的重量,v_n是第n个物品的价值 输出: v_1 x v_2 x v_3 x ... 其中,v_n是当前情况为x时背包的价 ...
  • Given a set of distinct integers, S, return all possible subsets. Note: Elements in a subset must be in non-descending order. The solution set must no ...
  • for穷举迭代
    for循环拥有两类:穷举:把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. 迭代:从初始情况按照规律不断求解中间情况,最终推导出结果. 案例: //单位给发了一张150元购物卡,//拿着到超市买三类洗化用品.//洗发水15元,香皂2元,牙刷5元.//求刚好花完150元,有多少种买法,/ ...
  • 递归算法求解遍历(或穷举)问题递归问题可以理解为遍历问题,必须遍历出所有的数据来,才能进行相应的运算,比如Fibonacci问题.阶乘问题,必须把每一步的值都遍历出来,然后才能做加法或乘法.递归算法解决问题的特点:(1) 必须有一个明确的递归结束条件,称为递归出口.(2) 根据当前状态的值推断下一个 ...
  • 穷举法的基本思想是根据题目的部分条件确定答案的大致范围,并在此范围内对所有可能的情况逐一验证,直到全部情况验证完毕.若某个情况验证符合题目的全部条件,则为本问题的一个解:若全部情况验证后都不符合题目的全部条件,则本题无解.穷举法也称为枚举法. 用穷举法解题时,就是按照某种方式列举问题答案的过程.针对 ...
  • 特殊题型三角形、菱形、for迭代穷举
    1.三角形 for(int m = 1; m <= 10; m++) { for (int n = 1; n <= m; n++) { System.out.print("*"); } System.out.println(); } View Code for(int ...
  • 穷举法解决旅行商问题
    一.问题描述 ,一个旅行商从A点出发,需要不重复地走遍5个城市ABCDE,最后回到A.每个城市之间的花费(即权值),现在要求找出一条总花费最小的路径,即权值和为最小的路径. 二.     算法说明 1.    算法一: 登山法(贪心法)     即在每一个城市出发前比较接下来所能走的城市花费(权值) ...
  • 穷举的一种应用,计算x+2y+3z=50的非负整数解.先约束每个变量的最大值,x=50,y=25,z=50/3. #include <iostream> ;i<=;i++;j<=;j++;k<=/;k++*j+*k)==; }
一周排行
  • 写在前面的赶集是我曾经待过的公司,百度是我现在进行时的公司,都是从事技术工作,搜到了这篇文 章之后,我一口气从头读到尾,对我个人来说,觉得很惭愧,正如文中所说:“理论上说,工作只是一种契约,倘若只将工作看成付出劳动获 ...
  •     网页缓存由HTTP消息头中的Cache-control控制,常见取值有private.no-cache.max-age.must- revalidate等,默认为private.    浏览器的访问方式分为以 ...
  • 巧用手机邮件来设置报警短信息
    很早之前就喜欢用移动的139的手机邮件来设置nagios报警邮件,当时联通的手机邮件短信功 ...
  • 1.typedef struct AA{  int b1 : 5;  int b2 : 2; }AA;void main() {  AA aa;  printf("%d/n", 'A');  ch ...
  •   bash的编程之case语句:用法格式    case 变量引用(${}) in     value1)      语句1      语句2      ...      ;;     value2)        ...
  • 鉴于在每个程序员在进阶的路上都要进行一些语言层面的基础回顾总结,编写本系列一是为了巩固自己的知识点,二是希望能帮助一些.NET程序员在进阶路上少走一些弯路,三是希望各位也能通过本系列多多交流.这一系列的文章,不出意外 ...
  • 部署客户端这个话题,似乎一直以来是个比较庞大而复杂的,有很多原因造成这一点,比如我们要写无人值守Unattended,要搞定驱动程序,要预装软件,要修改系统设置.当我们面对批量客户端需要部署的时候,我们怎么做? 微软 ...
  • 1. 介绍1)DOM(JAXP Crimson解析器)         DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找 ...
  • 以下均为近期学习React Native的个人心得,并不完善,欢迎园友拍砖. React Native是什么? React Native是一个框架,一个中间层,通过这套框架我们可以完成IOS和Android的开发. ...
  • 我们都清楚,网页的打开速度十分重要,如果网页打开时间超过8秒,那么访客将减少60%.所以,我们需要对网页进行优化,以便能够达到最佳的用户体验.       下面是18条网站加速方法:       1.减少HTTP请求 ...