Algorithm 求最小值的算法&;数组中方程的最大值

Algorithm 求最小值的算法&;数组中方程的最大值,algorithm,excel,vba,Algorithm,Excel,Vba,我有一个8整数的数组,4正4负 X [10,-2,30,-4,5,-20,8,-9] 现在,让我们 Evaluated = a-b+c-d+e-f+g-h 式中,a,b..h是从X中提取的唯一值。 我需要确保 案例1。评估=最接近零。 案例2。通过解决评估的问题,列出5个最大的可能性。 我可以通过对数组排序并将最大值分配给a、c、e和g,以及最小值b、d、f和h来找到最大值。但是如何找到接下来的4个值呢 有8个!解这个方程的方法对吗 确定此解决方案的最佳方法是什么?只需选择a、c、e、g作为

我有一个8整数的数组,4正4负

X [10,-2,30,-4,5,-20,8,-9]
现在,让我们

Evaluated = a-b+c-d+e-f+g-h
式中,a,b..h是从X中提取的唯一值。 我需要确保

案例1。评估=最接近零。
案例2。通过解决评估的问题,列出5个最大的可能性。 我可以通过对数组排序并将最大值分配给a、c、e和g,以及最小值b、d、f和h来找到最大值。但是如何找到接下来的4个值呢

有8个!解这个方程的方法对吗


确定此解决方案的最佳方法是什么?

只需选择a、c、e、g作为四个最小值,其余为最大值


Excel中的函数可能会对您有所帮助。

确保负值为正号,正值为负号。您将获得尽可能小的值。你甚至不需要分类

一个简单的方法是

Loop Each Element of X

    if X[i] > 0 Then X[i] = -1 * X[i]

End Loop

Add all elements of X (yes just don't think about subtracting, just add)

结果和是可能的最小值。

如果我理解正确,您有一个由八个数字组成的数组。您需要从四个数字中选择四个进行加法,四个进行减法,以获得尽可能小的结果。我将进行以下工作:

  • 从最小到最大对数组进行排序。描述了两种执行此操作的方法。在您的示例中,排序数组将有[-20,-9,-4,-2,5,8,10,30]
  • 添加数组中的前四个值
  • 减去最后四个值

  • 通过将四个值相加,然后减去八个数组中的剩余值,这将使您获得尽可能小的结果。

    实际目的是确定提供8个数字中最少/抵消的对。因此,该等式的总和最低。如何找到最大值?我使用了类似于@ZiyaoWei发布的东西。选择a、c、e、g作为最大值并替换其余值。如果要查找绝对值最小的对,请按此处对数组进行排序,并将最大值与最小值、第二大值与第二小值进行匹配,依此类推。在对您所写答案的注释中“实际的目的是确定8个数字中提供最少/抵消的对。从而使等式的总数最低。”取消的想法表明,您希望总数的绝对值较小,而不是代数值。如果是这样,请编辑问题以匹配。听起来您实际上希望选择对,以使abs(a+b)+abs(c+d)+abs(e+f)+abs(g+h)最小化。