2010-09-04 20 views
0

我正在尋找替代近似值(ushort [100])的有效方法來獲取其目標值。近似值的高效陣列規範化

有兩個目標值(ushort x,2x),ushort []中的每個值都近似於這兩個值中的一個。

+0

「在數組中出現值總是存在一個模式。」沒有任何有關'模式'的信息,這是非常無用的信息。 – 2010-09-04 19:54:35

回答

0
var a = target1 > words[i] ? target1 - words[i] : words[i] - target1; 
var b = target2 > words[i] ? target2 - words[i] : words[i] - target2; 
(OR) 
var as = target1 - words[i]; 
var bs = target2 - words[i]; 
a = as + (as >> 31)^(as >> 31); 
b = bs + (bs >> 31)^(bs >> 31); 

if (a < b) 
    normalized[i] = target1; 
else 
    normalized[i] = target2; 
1
  • 使與預期值
  • 爲每一個排序的數組約,最接近的二進制搜索預計
  • 更換
1

你總是可以只定義一個距離度量,讓您受讓人將每個近似值與期望值進行比較,將其視爲「區塊」,如直方圖中所示。處理值然後意味着用與該值具有最小距離的已知值來替換近似值。