2011-03-02 138 views
1

比如我有:如何比較兩個數組並找到最佳匹配?

array[3] arr1 = {.5,.5,0} 
array[3] arr2 = {.5,0,.5} 
array[3] arr3 = {0,.5,.5} 
array[3] findarr = {1,1,0} 

顯然,ARR1是findarr的最佳匹配。我已經有一個簡單的算法工作,但我想知道是否有一個公式如何做到這一點?

謝謝!

+0

所以 「最佳匹配」 中數值最接近意味着爲了考慮?無論如何,讓我們看看你的算法! – BoltClock 2011-03-02 08:02:17

回答

2

f = pow(arrX[0]-findarr[0],2) + pow(arrX[1]-findarr[1],2) + pow(arrX[2]-findarr[2],2);

pow(x,2) == x*x

所以, 「最佳匹配」,將數組,最小f

+0

嗨,謝謝!那即時即時使用,但我不平方。我會添加 – user488792 2011-03-02 08:31:45

+0

@ user488792:根據你在做什麼,你可能也想嘗試'fabs(arrX [0] -findarr [0])'而不是'pow(...,2)',或者取最大差異的絕對值。這些是不同的向量規範而不是歐幾里得距離(答案建議使用距離平方,這相當於比較)。 – 2011-03-02 08:35:06

相關問題