在使用整个列表时,如何在给定的数字列表中找到最小的2个独立和?

时间:2018-07-25 15:24:41

标签: algorithm numbers

给出一个数字列表5,10,15,25,35,45,您如何将数字分配到两个单独的总和中,以使每个总和成为最小的数字?

手动计算会使我相信这是最小的两个总和:

5+10+15+35 = 65
25+45 = 70

但是您也可以通过以下方式获得相同的结果

5+15+45 = 65
10+25+35 = 70

以及其他几个。给定不同的设置,例如

5.7, 10.2, 15.3, 25.6, 35.1, 45.8

最佳结果似乎是

5.7 + 15.3 + 45.8 = 66.8
10.2 + 25.6 + 35.1 = 70.9

在这样的情况下(与上面类似),可能还会有具有相同最佳总和的其他集合,因此也需要找到所有可能的总和以获得相同的结果,尽管知道最终总和就足够了让我获得其余的可能组合。

我认为处理此问题的最佳方法是找到该集合的总和并除以2,然后取总和的每种可能组合,并找到最接近平均值的总和,但是我想在此发布看看是否有更有效的方法。

哪种算法适合在这里使用?在我无法找到的StackOverflow的其他地方,有此用例的任何示例吗?

0 个答案:

没有答案