Tag: 子集

生成集合的所有“唯一”子集(不是powerset)

假设我们有一个包含几个子集的Set S : – [a,b,c] – [a,b] – [c] – [d,e,f] – [d,f] – [e] 我们还要说S包含六个独特的元素: a, b, c, d, e和f 。 我们怎样才能找到包含S每个独特元素的S所有可能子集? 函数/方法的结果应该是这样的: [[a,b,c], [d,e,f]]; [[a,b,c], [d,f], [e]]; [[a,b], [c], [d,e,f]]; [[a,b], [c], [d,f], [e]]. 是否有任何最佳实践或任何标准方法来实现这一目标? 我将非常感谢伪代码,Ruby或Erlang示例。

Ruby:包含在Array中的数组,任何顺序

假设我有以下Ruby代码: array_1 = [‘a’, ‘b’] array_2 = [‘a’, ‘b’, ‘c’] some_function(array_1, array_2) # => True some_function(array_2, array_1) # => False some_function([‘a’, ‘b’], [‘a’, ‘d’]) # => False some_function([‘x’, ‘y’], array_2) # => False 当参数2包含参数1中的所有元素时,我几乎都在寻找some_function来返回True。

生成集合的powerset而不在Erlang或Ruby中保留堆栈

我想生成一个相当大的集合(约30-50个元素)的powerset,我知道它需要2^n来存储powerset。 是否有可能一次生成一个子集? 即生成具有迭代的集合的powerset,将每个生成的子集保存到磁盘/数据库,将其从堆栈/内存中删除,然后继续生成其他子集? 不幸的是,我没有根据我的需要修改Erlang和Ruby示例。