减少子集的数量
Posted
技术标签:
【中文标题】减少子集的数量【英文标题】:reducing the number of subsets of 【发布时间】:2017-05-12 11:24:38 【问题描述】:这里的问题。假设我们有一大组 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】:我想到的一个简单的或者你可以说是蛮力的方法是,根据它们的大小对小集合进行排序,所以现在我们的订单看起来像这样 ->
(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 = 长度的小集合,其中长度 = 小集合的数量。
希望这会有所帮助!
【讨论】:
好的。让我们用真正的问题来解决它。我有很多来自 M 个客户的订单,他们订购了 M 个需要由机器生产 K 个元素的对象。对象的每个元素都取自一大组 N 元素,但机器一旦设置就可以同时管理“n”个元素(其中 n以上是关于减少子集的数量的主要内容,如果未能解决你的问题,请参考以下文章