【问题标题】:Looking for an alternative to this array solution [closed]寻找此阵列解决方案的替代方案 [关闭]
【发布时间】:2012-10-11 17:36:40
【问题描述】:

我有 int[10000] 数组。

我需要将每个 int 与其他 int 相加,并仅显示结果,其中 sum 为 > N。

求和,可以是任意数组元素,也可以是5,6,7...10000个数组元素的总和,其中> N.

我可以像 a[1] + a[2] + a[3] 那样写下(所有组合,但它是疯狂的)...但是可能还有其他解决方案吗?

我需要所有组合的结果,这给我的总和是>N

好的。如果是int[10]数组?

【问题讨论】:

  • "每个 int 与另一个"...对不起,你能澄清一下吗?您是否正在寻找 a[x]+a[y] 的 10000x10000 比较,测试每对是否 > N?要不然是啥?总结的是什么?整个阵列?所有对?所有的三倍?所有组合?还是...?
  • 这似乎是家庭作业,因为您已经定义了一个问题但没有给出解决方案。作业在这里已被弃用,并且作为问题无效。请写下您尝试创建此问题的解决方案,然后在您的程序中遇到卡住或遇到技术问题时提出问题。
  • 你有没有尝试过?当你找到一个大于 N 的总和时应该是什么输出?
  • 所有组合。我认为最好的方法是使用组合学定理......
  • 你想做什么,真的吗?您可以对数组中的数字进行大约 2*10^3010 种组合,因此您无法全部测试它们。世界上所有的综合计算机能力在你有生之年都做不到……

标签: c# arrays


【解决方案1】:

您的问题类似于Subset Sum 问题。 Here你可以找到这个算法的两个解决方案。唯一的变化是您必须跟踪总和大于 N 的数字,并且您需要针对所有可能性重复它,而不是仅仅找到真/假结果。

【讨论】:

    猜你喜欢
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-10
    相关资源
    最近更新 更多