2013-04-30 53 views
-1

我有8 INT,4个阳性和阴性4的阵列找到方程的最小和最大值。算法从阵列

X [10,-2,30,-4,5,-20,8,-9] 

现在,让我们

Evaluated = a-b+c-d+e-f+g-h 

其中,b..h从十 采取独特的价值观,我需要确保

案例1.评标=最接近零。
案例2.列出了通过解决评估的5最大的可能性。 我能找到通过排序阵列和分配的最高值至A,C,E和G,和最小值B,d,f和h的最大值。但如何找到接下来的4个值?

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

什么是确定这种解决方案的最佳途径?

+1

在对您写的答案的评论中,“实际目标是确定从8个数字中提供最少/取消的对。因此,将最低的总和赋予方程式。“取消的想法表明您希望总数的绝对值较小,而不是代数值。如果是这样,请编辑问题以匹配。 – 2013-04-30 15:36:08

+0

这听起来像你实际上想要选择使得abs(a + b)+ abs(c + d)+ abs(e + f)+ abs(g + h)最小化的对。 – 2013-04-30 23:24:49

回答

1

只要选择A,C,E,G四大最小,其余作为最大的价值。

功能Small在Excel中可能会帮助你。

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) 

结果之和最小可能值。

1

如果我理解正确的问题,你有八个数字的数组。您想要选择要添加的四个数字,并且要减去四个以获得尽可能最小的结果。从最小到最大

  1. 排序数组:我将进行如下。 This article描述了两种方法来做到这一点。在示例中,排序后的数组将具有[-20,-9,-4,-2,5,8,10,30]。
  2. Add数组中的前四个值。
  3. 最后四个值。

这会通过添加四个值并减去八个数组中的剩余值来给出可能的最小结果。

+0

实际目标是确定从8个数字中提供最少/取消的对。因此给出了最低的总和等式。 一个人怎么会发现最大?我用了类似于@ZiyaoWei发布的东西。选择a,c,e,g作为最大值并替换其余部分。 – Ash 2013-04-30 15:11:44

+0

如果你正在寻找具有最小绝对值的对,则数组这里进行排序,并匹配最大到最小,第二大至次之,依此类推。 – 2013-04-30 23:26:05