【问题标题】:All combinations of objects in array数组中对象的所有组合
【发布时间】:2012-09-14 16:12:40
【问题描述】:

我有一个包含数字的数组,并希望遍历它们的所有组合以计算所选数字与其余数字之间的最小差异。 这样的循环会是什么样子?我试图找到一个解决方案,但不知何故,找到这样的算法似乎并不容易。

【问题讨论】:

  • 你有几样东西?组合的数量很快就变得很高......
  • “组合”是什么意思。你是说子集吗?对?字符串?
  • 你想将你的数组分成两组并最小化它们总和的差异吗?在这种情况下,您应该尝试另一种方法,在 SO 上搜索解决方案
  • 对象的顺序无关紧要,这样可以减少组合的数量。最多有40个数字左右。如果有 10 个数字,一个组合可能是:数字 1,3,6 和 2,5,7,8,9,10 或另一个组合数字 2,4,5,9 和 1,3,6,7,8为了加快速度,我想我可以先将所有数字相加,这样我只需将数字较少的部分相加,然后从总数中减去即可得到另一部分。希望我的帖子不会让人困惑;)

标签: algorithm loops combinations minimum


【解决方案1】:

解决你的实际问题,即

计算所选数字与其余数字之间的最小差异

或者换句话说

选择数字,使选择的总和最接近总和的一半

或者换句话说

背包问题的变体

现在,您可以快速搜索,因为那里有各种解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-20
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多