【发布时间】:2016-02-08 19:55:21
【问题描述】:
我有 5 个文件夹,每个文件夹包含大小为 10KB、500KB、1MB、5MB 和 30MB 的“n”个文件。 现在我需要从这些文件夹中选择恰好 15000 个文件并将它们放入一个新文件夹中,以便我从每个文件夹中选择至少一个文件和平均文件大小仍然在 1MB 左右。 我尝试过处理加权平均分布以及沿着这个问题http://goo.gl/uAHOk1 的思路,但无法得出任何结论。
这个问题可以在多项式时间内解决吗?
编辑
来自 cmets:
- 为清楚起见,您可以认为每个文件夹正好有 16k 个文件。
- 大约 1 MB 我的意思是平均文件大小在 1 到 1.5 MB 的范围内。例如,如果我必须准确地选择 5 个文件并牢记问题的限制,那么唯一的解决方案就是从每个文件夹中选择一个文件。然后,平均文件大小将变为 7.3MB
【问题讨论】:
-
“大约”1MB 是什么意思?有特定的间隔吗?
-
看来,基于您需要对公式的数学帮助,而不是如何编写此代码,这个问题在@987654322 上会更合适(并且回答得更快) @.
-
@harold 我猜他们的意思是最小化 |平均 - 1MB | 因为在问题的表述中没有其他目标......
-
你的问题表述不清楚,至少对我来说是这样。 每个 文件夹是否有
n文件?如果不是,它们是如何分布在文件夹中的?n有多大,你有没有容量限制,你可以用完特定大小的文件? -
如果您从每个文件夹中选择 5 个,然后从 10KB 中选择 30 个,那么对于“周围”的某些定义,它将是“大约 1MB”。然后只需选择 14965 个 1MB 的文件(你有它们还是有限制?)。但这看起来像是作弊,它肯定不是优化算法。
标签: algorithm math dynamic-programming distribution mathematical-optimization