一个简单的子集产生算法
来源:互联网 发布:淘宝9.9疯抢领红包链接 编辑:程序博客网 时间:2024/05/22 08:01
char[] A={'a','b','c','d',...},集合A中,产生所有A的子集{'a'},{'b'},{'a','b'},{'a','b','c'}...这些。
方法一: 根据二进制产生
import java.text.*;
public class SubSet ...{
public static void main(String[] args) ...{
char[] chs = ...{'a', 'b', 'c', 'd'};
int len = 4;
for (int i = 0; i < Math.pow(2,len); i++)
...{
String str = Integer.toBinaryString(i);
int toBinary = Integer.parseInt(str);
DecimalFormat df = new DecimalFormat("0000");
str = df.format(toBinary);
char[] toCharArray = str.toCharArray();
System.out.print("{");
for (int j = 0; j < toCharArray.length; j++)
...{
if (toCharArray[j] == '1')
System.out.print(chs[j] + ",");
}
System.out.println("}");
}
}
}
public class SubSet ...{
public static void main(String[] args) ...{
char[] chs = ...{'a', 'b', 'c', 'd'};
int len = 4;
for (int i = 0; i < Math.pow(2,len); i++)
...{
String str = Integer.toBinaryString(i);
int toBinary = Integer.parseInt(str);
DecimalFormat df = new DecimalFormat("0000");
str = df.format(toBinary);
char[] toCharArray = str.toCharArray();
System.out.print("{");
for (int j = 0; j < toCharArray.length; j++)
...{
if (toCharArray[j] == '1')
System.out.print(chs[j] + ",");
}
System.out.println("}");
}
}
}
方法二:
public class PossibleSet
...{
public static void main(String[] args)
...{
int[] set = new int[4];
char[] chs = ...{'a', 'b', 'c', 'd'};
int i, n, position = 0;
set[position] = 1;
while(true)
...{
System.out.print("{" + chs[set[0] - 1]); // 第一个数
for(i = 1; i <= position; i++)
System.out.print("," + chs[set[i] - 1]);
System.out.println("}");
if(set[position] < set.length)
...{ // 递增集合个数
set[position+1] = set[position] + 1;
position++;
}
else if(position != 0)
...{ // 如果不是第一个位置
position--; // 倒退
set[position]++; // 下一个集合尾数
}
else // 已倒退至第一个位置
break;
}
System.out.println();
}
}
...{
public static void main(String[] args)
...{
int[] set = new int[4];
char[] chs = ...{'a', 'b', 'c', 'd'};
int i, n, position = 0;
set[position] = 1;
while(true)
...{
System.out.print("{" + chs[set[0] - 1]); // 第一个数
for(i = 1; i <= position; i++)
System.out.print("," + chs[set[i] - 1]);
System.out.println("}");
if(set[position] < set.length)
...{ // 递增集合个数
set[position+1] = set[position] + 1;
position++;
}
else if(position != 0)
...{ // 如果不是第一个位置
position--; // 倒退
set[position]++; // 下一个集合尾数
}
else // 已倒退至第一个位置
break;
}
System.out.println();
}
}
- 一个简单的子集产生算法
- 一个简单的子集产生算法
- 一个简单的子集产生算法
- 产生一个集合的所有子集
- 子集算法(PHP): 求一个非空集合的子集
- 集合子集的一个Java算法
- 一个字符串子集判断的算法
- 输出一个集合的所有子集(算法)
- 输出一个集合的所有子集(算法)
- 输出一个集合的所有子集(算法)
- 求子集的算法
- 子集的二进制算法
- 一个简单有效的产生随机数且不重复的小算法--Robert Floyd
- 一个简单的随机数产生函数
- Java产生死锁的一个简单例子
- Java产生死锁的一个简单例子
- Java产生死锁的一个简单例子
- Java产生死锁的一个简单例子
- 垃圾清理势在必行——Java垃圾收集算法
- 无刷新随时取得用户当前活动信息
- 将j2ee程序部置到portal上去!
- java 反射机制
- ASP导出Excel数据的四种方法
- 一个简单的子集产生算法
- Linux那些事儿 之 戏说USB(35)驱动的生命线(三)
- 用asp实现QQ在线查询
- 使用SQL语句删除带用默认值的列
- JS判断是否为数字,是否为整数,是否为浮点数
- 成员特征
- asp实现k线图(在线)
- AJAX 设计制作 在公司弄的 非得要做出这个养的 真晕!
- PHP中学习引用返回的好实例