【发布时间】:2014-08-06 16:34:49
【问题描述】:
我目前正在寻找有关如何使用这些规则找到一组数字的所有可能总和的想法。我有这些数字可以使用,我想找到所有可能的总和,这样你就只能使用一个数字,最多 4 次,每次你选择 7 个这些数字。
{ 0、1、5、22、98、453、2031、8698、22854、83661、262349、636345 和 1479181 }
可接受的例子是
0 + 0 + 0 + 0 + 83661 + 83661 + 2031
不可接受的例子是
0 + 0 + 0 + 0 + 0 + 83661 + 2031
我能想到的唯一方法是一系列嵌套循环,但我也遇到了麻烦。是否有任何其他选择可以做到这一点。我正在使用 Java,但我认为这并不重要。
【问题讨论】:
-
你有没有想过使用递归来做这件事?这可能最适合您的目的。
-
应该有用于查找所有组合的算法——即如果你有一个集合,找到所有正好有 7 个元素的子集。现在使用包含原始集合中每个元素的 4 个副本的多集合来执行此操作。 (但这会给你带来很多重复的子集......)