【问题标题】:Alternative to partition problem dynamic programming分区问题动态规划的替代方案
【发布时间】:2019-10-23 02:34:22
【问题描述】:

这个问题是关于著名的分区问题。

我在这个问题上做了一些学习,发现大多数解决方案都遵循“将一个集合分成两个,使得它们的差异最小”,或者“确定是否有两个子集,它们的总和是相同的”

我想知道这个问题是否有解决方案:“将一个集合分成两个,使得它们的差异是某个值 d”

例如,它们的差值可能是 1 或 2。

subset({3,4,9}, diff=2) = [{9}, {3,4}]

因为子集 1 的和是 9,子集 2 的和是 7,这给了我们想要的差 2。

有这样的问题吗?

【问题讨论】:

    标签: algorithm dynamic-programming


    【解决方案1】:

    这个问题简单地等同于subset-sum one
    解决sum=overall_sum/2 + d/2 的子集总和,您将获得所需的子集作为解决方案和其余部分

    【讨论】:

      猜你喜欢
      • 2011-09-23
      • 1970-01-01
      • 1970-01-01
      • 2011-10-17
      • 2012-04-09
      • 2015-07-22
      • 2016-11-26
      相关资源
      最近更新 更多