0

我想获得给定长度的所有可能子集,这些子集会导致真实集合。所以对于集合 [a,b,c] 和子集大小 1 & 2 我想计算:

[[a,b],[c]] , [[b,c],[a]] , [[a,c],[b]]

我一直在尝试使用算法中的代码来计算 R 中一组的幂集(所有可能的子集),但该算法将生成所有子集,而不仅仅是那些导致集合的子集。

我正在尝试解决这个问题,尺寸约为 30。我想计算每个子集组合的分数,只保留最好的,这样我希望记忆没有困难。选择的编程语言是python。

4

2 回答 2

3

如何创建长度为 2 的组合,并通过计算与原始集合的差异来生成余数?这就是我的意思:

from itertools import combinations

s = {'a', 'b', 'c'}

res = [(set(comb), s.difference(comb)) for comb in combinations(s, 2)]

生成:

[({'a', 'c'}, {'b'}), ({'b', 'c'}, {'a'}), ({'a', 'b'}, {'c'})]
于 2014-10-31T16:39:17.393 回答
0

您可以使用以下代码来查找列表中子集的大小:

     list1=[[1,2,3],[1,3],[2,3,3,4]]
     x= len(list1)
     while(x>0):
        print len(list1[x-1])
        x=x-1

输出:

  4
  2
  3
于 2014-10-31T16:44:09.727 回答