减少子集的数量

时间:2017-05-12 11:24:39

标签: algorithm subset

这里的问题。让我们说我们有一大组N元素。我们还有M个小元素集的大列表,小集合可以与它们相交,这意味着它们可以具有许多相同的元素:SE(1-> M)。 现在我们的目标是找到给定n个元素(其中n

例如:

(1 2 3 4 5 6 7 8 9 10 11 12) = big set with N = 12

(1 3 7 8)
(1 2 3 10 12)
(4 5 7 9)
(6 10 12)
(3 5 9 12)
(2 4 6 8)
(1 2 3 4)

让我们说集合的总和不得超过9个元素(

然后一个解决方案是:

subset1
(1   3   7 8 )
(1 2 3         10 12)
(    3 5     9    12)
subset 2
(      4 5   7   9)
(          6       10 12)
(  2   4   6   8)
(1 2 3 4)

谁对我有一些暗示?

1 个答案:

答案 0 :(得分:0)

我想到的一个简单的或者你可以说蛮力的方法是根据它们的尺寸对小套装进行排序,所以现在我们的订单看起来像这样 - >

(6,10,12), (1,3,7,8), (4,5,7,9), (2,4,6,8), (1,2,3,4), (3,5,9,12), (1,2,3,10,12)

并且总大小计数= 4 * 5 + 3 + 5 = 28是大小。因此,我们的每个子集大小应小于9,

所需的子集数量= 28/9 = 4。

所以现在需要4个桶并开始插入从i = 0到i = length的小集合,其中length =小集合的数量。

希望这有帮助!