- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试寻找一种有效 的方法来获取 PowerSet 的一组子集。
例如,这在集合尺寸较小时有效:
Set<Integer> set = new HashSet<Integer>();
set.add(1);
set.add(2);
set.add(3);
Set<Integer> set2 = new HashSet<Integer>();
set2.add(3);
Set<Set<Integer>> sets = MyUtils.powerSet(set); //size - 8 SubSets
Set<Set<Integer>> badSets = MyUtils.powerSet(set2); //size - 2 SubSets
//my set of subsets of the powerset
sets.removeAll(badSets) //size - 6 SubSets
然而,当更多元素被添加到这些集合中时,这并不实用。还有其他方法吗?
只是友好地提醒一下 PowerSet 是什么:
{a,b,c} 的幂集:
P(S) = { {}, {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c} }
最佳答案
如果从 P(A) 中删除 P(B) 后,一组是另一组的子集(A、B 大小为 m、n),则有 2n - 2m 元素,如果 B 不是 A 的子集,您可以再次假设 B'=A intersection with B
并且我们有类似的关系,所以数字都很大。
例如假设 A-B 有一个元素,|P(A)-P(B)| = 2n - 2(n-1) = 2(n-1),例如对于 n = 40 你不能迭代在所有项目上。
无论如何,一种方法如下:
有一个大小为 n 的计数器,以 2 为底,首先将 m+1 位设置为 1
,将其他所有设置为 0
然后打印结果,每次增加计数器( 1) 并打印结果 upto rich to 2n - 1。这是 O(2n - 2m).
关于java - 以有效的方式查找 PowerSet 的一组特定子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7524131/
我得到了一个列表列表 s : s = [["a1", "A"], ["b4", "B"], ["a3", "A"], ["d6", "D"], ["c4", "C"]] (请注意,列表中的元素不一定以
我正在尝试以两种方式在 Scheme 中实现幂集函数。一种方法是使用尾递归,我是这样做的: (define (powerset list) (if (null? list) '(())
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我需要在 haskell 中创建一个幂集函数,它接受一个集合并输出没有重复条目的幂集,无论输入列表中放入什么。例如:[1,1] 应返回 [[],[1]] powerset [] = [[]]
我使用位移来生成给定数字字符串的幂集。我怎样才能将它限制在一定的长度,比如 4,从而通过不找到不需要的长度的子序列来缩短执行时间。 例如:如果给定的数字字符串是 10292,则只需要以下子序列:102
谷歌搜索了一段时间以找到字符串的子集,我读到 wikipedia 它提到了 .....对于 S 的整个幂集,我们得到: { } = 000 (Binary) = 0 (Decimal) {x} = 1
这个问题在这里已经有了答案: Obtaining a powerset of a set in Java (27 个答案) 关闭 9 年前。 我想找到给定集合的所有子集。我得到的字符串集定义如下:H
下面的函数返回一个集合(列表)的幂集。 let rec powerset = function | [] -> [[]] | x::xs -> List.collect (fun sub ->
Haskell 的表达能力使我们能够相当容易地定义 powerset 函数: import Control.Monad (filterM) powerset :: [a] -> [[a]] power
众所周知,列表的幂集: {1,2,3,4} 是 {{},{1},{2},{1,2},{3},{1,3},{2,3},{1,2,3 },{4},{1,4},{2,4},{1,2,4},{3,4},{1,
我正在尝试寻找一种有效 的方法来获取 PowerSet 的一组子集。 例如,这在集合尺寸较小时有效: Set set = new HashSet(); set.add(1); set.add(2);
是否有一些等效的库或函数可以为我提供一组值的下一个组合,例如 next_permutation 对我有帮助吗? 最佳答案 组合:来自 Mark Nelson 关于同一主题的文章,我们有 next_co
因此,我需要递归地查找给定字符串的所有子集。到目前为止我所拥有的是: static ArrayList powerSet(String s){ ArrayList ps = new A
我正在尝试生成一个集合的幂集,并且我编写了这段代码。问题是,当用户输入集合中的两个相似成员时,它无法正常工作。我能做什么?这是我的代码: #include #include #include #
所以我得到了这个用于 powerset: powerset([], []). powerset([H|T], P) :- powerset(T,P). powerset([H|T], [H|P]) :
我正在使用带有 DrRacket 列表缩写的起始语言,并且想要递归地创建一个 powerset,但无法弄清楚如何去做。我目前有这么多 (define (powerset aL) (cond
Learn You a Haskell演示 powerset功能: The powerset of some set is a set of all subsets of that set. powe
用于环境共享和不确定性的规范“Monad 实例”如下(使用伪 Haskell,因为 Haskell 的 Data.Set 当然不是 Monadic): eta :: a -> r -> {a} --
我有一些这样的代码 import com.google.common.collect.Sets; public void handleInput(Set conditions){ Set> p
为了获取列表的幂集,我实现了以下内容: public static ArrayList> getAllSubsets(ArrayList set, int index, ArrayList subse
我是一名优秀的程序员,十分优秀!