从数组中求出方程的最小值和最大值的算法

Ash*_*Ash -1 algorithm excel vba excel-vba

我有一个8 int,4 positive和4 negative的数组.

X [10,-2,30,-4,5,-20,8,-9]
Run Code Online (Sandbox Code Playgroud)

现在,让我们

Evaluated = a-b+c-d+e-f+g-h
Run Code Online (Sandbox Code Playgroud)

其中a,b..h是从X获取的唯一值.我需要确保这一点

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

有8个!解决这个等式的方法对吗?

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

Bud*_*dha 5

确保负值为正号,正值为负号.您将获得尽可能小的价值.你甚至不需要排序.

一个简单的做法是......

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)
Run Code Online (Sandbox Code Playgroud)

结果总和是可能的最小值.