比如我有:如何比較兩個數組並找到最佳匹配?
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的最佳匹配。我已經有一個簡單的算法工作,但我想知道是否有一個公式如何做到這一點?
謝謝!
比如我有:如何比較兩個數組並找到最佳匹配?
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的最佳匹配。我已經有一個簡單的算法工作,但我想知道是否有一個公式如何做到這一點?
謝謝!
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
嗨,謝謝!那即時即時使用,但我不平方。我會添加 – user488792 2011-03-02 08:31:45
@ user488792:根據你在做什麼,你可能也想嘗試'fabs(arrX [0] -findarr [0])'而不是'pow(...,2)',或者取最大差異的絕對值。這些是不同的向量規範而不是歐幾里得距離(答案建議使用距離平方,這相當於比較)。 – 2011-03-02 08:35:06
已經在這裏回答了。只是通過它來獲得一個想法。
你可以用類似的方式做到這一點。
有點相關。
在PHP中,你可以使用array_intersect功能做到這一點。 [+]
所以 「最佳匹配」 中數值最接近意味着爲了考慮?無論如何,讓我們看看你的算法! – BoltClock 2011-03-02 08:02:17