穷举子集合

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

例如:{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)==; }
一周排行
  • Windows8下excel2010的多窗口开启
        近来把操作系统换成了Windows 8,速度比Windows 7又快了许多(个人感 ...
  • 图标是IOS程序包所必需的组成部分.如果你没有提供程序所需的各种尺寸的图标,程序上传发布时可能会无法通过验证.IOS程序为兼顾不同的应用场景,定义了多个不同规格的图标,并以不同的命名区分: IOS图标尺寸一览 iPh ...
  • mysqldump备份整个数据库mysqldump -u root -ppassword databasename >data.sql//输入root密码即可备份某个或多个表mysqldump -u root ...
  • linux下一些基础命令1
    1.在linux默认登录模式中,主要有GUI(命令行模式)和CLI(图形界面):ctrl+ ...
  • 大家好!最近不少学生朋友在忙着写论文.在您忙的同时,顺便也看看我们的"易宝典",没准对您做论文有点帮助.近期会有些易宝典文章发布,做成一系列.许多同学在文章开头手动做了个目录,但是自己反复增删.导 ...
  • /*部分字段*/ --create a permission (CUSTOMER_SETTINGS_EDIT) and assigned to admin role insert into role_permissi ...
  • 网上看了好多解决的方法,但是还是不管用,我忽然想起Windows中有hosts这么一个文件,既然localhost不能用,那我就把localhost解析成127.0.0.1,问题解决. host文件目录:C:\WIN ...
  •    1973年,Blum.Floyd等几位大仙合并一体,写了一篇题为 "Time bounds for selection" 的章,给出了一种在数组中选出第k小元素的算法,俗称"中位数 ...
  • 在QTP中执行类似:ExecuteFile "D:/test.vbs" 这样的语句时会出现“无效字符”的提示错误,这是因为QTP对字符集的处理能力非常弱,只要把test.vbs这个文件另外存为&q ...
  • control 打开控制面板 Appwiz.cpl 打开控制面版里添加删除程序 wupdmgrwindows 更新程序wscriptwindows脚本宿主设置 write写字板 winmsd-系统信息 wiaacmg ...