【问题标题】:Divide list into two equal parts algorithm将列表分成两等份算法
【发布时间】:2012-06-07 03:15:58
【问题描述】:

相关问题:

假设我有一个列表,其中正好包含 2k 元素。现在,我愿意将其分成两部分,其中每一部分的长度为k,同时尝试使各部分的总和尽可能相等。

快速示例: [3, 4, 4, 1, 2, 1] 可能被拆分为 [1, 4, 3] and [1, 2, 4] 和差将是 1

现在 - 如果零件可以有任意长度,这是 Partition problem 的变体,我们知道它是弱 NP-Complete.

但是关于将列表分成相等的部分(假设它总是k2k)的限制是否使这个问题可以在多项式时间内解决?有任何证明(或证明它仍然是NP这一事实的证明方案)?

【问题讨论】:

    标签: algorithm np-complete computation-theory partition-problem data-partitioning


    【解决方案1】:

    它仍然是NP 完成。通过将PP(分区问题的完整变体)简化为QPP(等份分区问题)来证明:

    获取长度为k 的任意列表加上其他k 元素的值均为零。

    我们需要找到性能最好的分区PP。让我们使用QPP 的算法找到一个,忘记所有额外的k 零元素。移动零不会影响此分区或任何竞争分区,因此这仍然是任意长度列表中性能最佳的无限制分区之一k

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 2021-07-07
      • 2023-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多