2013-04-30 48 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