穷举子集合

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

例如:{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)==; }
一周排行
  • 中级学员:2015年10月26日作业一.变更管理1.变更的工作程序:2.变更初审的4条内容:3.对进度变更控制,包括哪些主题.二.安全管理1.哪些技术来实现信息的保密性:2.哪些技术来实现信息的完整性:3.哪些技术来 ...
  • 前段时间的一个周五,由于很久没吃肉,憋得难受就寻了一个卖肉夹馍的摊子,买肉夹馍.因为有个人一口气买了5个,我就等了会.期间发现摊主和我差不多大,20来岁的样子,无聊之下就和他聊了起来.我:老板,一天肉夹馍能卖多少个, ...
  • 设置普通用户也有共享权限|runas提升普通用户权限.上网的机器,把用户限制在了users组里.但是很多时候又要开放共享文件夹,而users组用户不具备这个权限.注销当前用户再用管理用户登录去设置是可行,但是毕竟太麻 ...
  • Action详解一
    自定义的Action一般继承与ActionSupport,并定义变量,覆盖execute( ...
  • fastdfs 上传速度测试虚拟机环境一台tracker     192.168.8.91两台storage     192.168.8.92/93一台client      192.168.8.94测试场景一:两台 ...
  • MySQL数据库已经应用到很多互联网公司,mysql权限管理非常重要,合理规划好mysql数据库权限,对数据库的安全和使用是非常有好处的.一个好的规范和习惯,做任何事也不会出现大问题.下面是mysql权限规划授权的语 ...
  • Ubuntu12.04下安装配置和操作VNCserver----一步步实测
       Ubuntu图形环境下,可以使用VNC进行远程管理.如果没有图形界面,只有字符界面的 ...
  • 5.8 BigDecimal类 双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更小的数进行运算和处理.Java在java.math包中提供的API类BigDecimal,用来对超过16 ...
  • 所用Tomcat服务器都为zip版,非安装版.以两个为例:安装第二个Tomcat完成后,到安装目录下的conf子目录中打开server.xml文件,查找以下三处:  (1) 修改http访问端口(默认为8080端口) ...
  • 理论:1.什么是反向连接?反向连接是指主机A(受控端)主动连接主机B(控制端),在主机A和主机B之间建立一个远程连接,通过这个连接主机B可以主动的向主机A发送一些请求.2.为什么需要主机A主动去连接主机B呢?这是因为 ...