查找总和最接近数字的值的组合

查找总和最接近数字的值的组合

我有一列数字,我想找出其中三个数字的最佳组合。在我们的例子中,最佳组合是尽可能接近目标数字的总和。

例如,我们的目标是 100,下面是一列数字:

15
70
36
60
30
53
37
17
0
75
100
9

如果我将这30+70+0=1003 个数字 (30,70,0) 相加,那就是最佳组合,因为它达到了我们的目标数字 100。我们还可以使用60+30+9=99剩余的数字获得其他组合,等等。

有没有办法通过 Excel(或者任何其他你能想到的方法)列出最佳的三数组合(类似于递归和分布)?

答案1

一种方法是使用 Solver

  • 将数据放入 A1:A12
  • 在 B13 中输入公式 =SUMPRODUCT(A1:A12,B1:B12)
  • 设置求解器,使得 B1:12 必须是二进制(即 1 或 0)
  • 在 B14 中输入“目标”分数,在你的例子中为 100
  • 在 B15 中输入 =ABS(B13-B14)
  • 设置求解器以寻找 B15 中的最小值(要么给出没有差异的精确解,要么给出具有最小可能差异的最接近解)

在这种情况下,最简单的解决方案是将 100 设置为“开”(即 1),所有其他值都设置为“关”(0)

下面是 xl2003 的屏幕截图,用于求解 367(因为它比 100 更复杂)

在此处输入图片描述

相关内容