首页 > 编程知识 正文

计算幂集的基数,离散幂集怎么计算

时间:2023-05-04 02:46:10 阅读:255835 作者:1080

1. 如何计算幂集 1.1. 需求

给定三个数字1,2,3 得到 {1,2,3,12,13,23,123,""}等等这些集合

原始文章,感谢这位大哥

1.2. 什么是幂集

百科

1.3. 代码 1.3.1. 核心 public List<List<String>> powerSet(List<String> set) { //已知所求集合的幂集会有2^n个元素 int size = 2 << set.size(); List<List<String>> powerSet = new ArrayList<>(size); //首先空集肯定是集合的幂集 powerSet.add(Collections.emptyList()); for (String element : set) { //计算当前元素与已存在幂集的组合 int preSize = powerSet.size(); for (int i = 0; i < preSize; i++) { List<String> combineSubset = new ArrayList<>(powerSet.get(i)); combineSubset.add(element); powerSet.add(combineSubset); } } return powerSet; } 1.3.2. 测试 /** * 打印一下生成的幂集 */ @Test public void printData() { List<String> set = Arrays.asList("1", "2", "3"); List<List<String>> powerSet = powerSet(set); Console.log("幂集的数量是 = [ {} ]",powerSet.size()); for (List<String> item : powerSet) { String join = Joiner.on(",").join(item); System.out.println(join); } } 1.3.3. 结果 幂集的数量是 = [ 8 ]121,231,32,31,2,3

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。