穷举子集合

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

例如:{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)==; }
一周排行
  •     我们生活里,有没有哪位兄台去给自己新配一个机子的时候要问出单员,"我想装一个正版的微软操作系统需要给你们加多少钱?"...呵呵,我想,如果你真的问了,那这个业务员的下巴一定能掉到地上... ...
  • 一.引言介绍Linux系统中的两个命名:grep,egrep.要想使用这2个命令要先学会使用正则表达式,在介绍正则表达式之前,先说明一下,大家都熟知的在word中使用的通配符,即:*:表示任意长度任意字符.?:表示任 ...
  •   开机自检时出现问题后会出现各种各样的英文短句,短句中包含了非常重要的信息,读懂这些信息可以自己解决一些小问题,可是这些英文难倒了一部分朋友,下面是一些常见的BIOS短句的解释,大家可以参考一下.     1.CM ...
  • RedHat5.4下构建postfix全功能电子邮一-环境软件包、dns准备
    RedHat 5.4下构建postfix全功能电子邮(一)-环境(软件包.dns准备)一. ...
  • GCMail是一套基于Windows+PHP+MySQL的多域名大容量企业邮件系统.GCMail   历经四年的开发,以广大企事业单位的邮箱应用需求为目标做了深入的开发,将邮件系统的功能发挥至极致,最大拓展了企业邮箱 ...
  • /*[程序6] 题目:输入两个正整数m和n,求其最大公约数和最小公倍数. 1.程序分析:利用辗除法. */ package test; public class test { //最大公约数 public stati ...
  • AWS系列之三使用EBS
    https://run.qwiklabs.com.说实话qwiklabs真是个好东西,如果 ...
  • 毕业生真的是嫩,眼神清澈.心里的感觉都挂在脸上,也没有什么礼节束缚,来应聘的时候还挺紧张羞涩.我递过名片的时候,他们还是单手接过(没有礼节束缚的感觉真好,可惜这些在失去后才知道的),不过现在的毕业生比起我们当年来,确 ...
  • Nagios+Cacti模块--Nagios+Cacti 搭建及整合(一):http://mengsir.blog.51cto.com/2992083/1253825/Nagios的安装与配置:http://www. ...
  • NSNumber转NSString: 假设现有一NSNumber的变量A,要转换成NSString类型的B 方法如下: NSNumberFormatter* numberFormatter = [[NSNumberF ...