這可能是一個簡單的問題,但我找不到一個好的方法。在簡單的線性數據集中查找並修復錯誤的值
我已經得到了有限數量的有序int值,這些值應該是彼此相似的距離,例如:32, 42, 52, 62, 72, 82
。
但實際上,有些值是錯誤的。我們可能會以32, 51, 62, 66, 71, 83
結束。
我怎樣才能找到明顯錯誤的值(在這種情況下:66),並將其移動到正確的位置(42)?
- 可以假設大多數數據仍然有效,所以仍然可以計算點之間的正確距離(這裏:10)的一個好猜測。
- 點的數量是已知和正確的(即,我們只需要移動但不添加或移除點)。
- 左側和右側的數據邊界是未知的,邊緣情況下的行爲可以自由定義。
在寫我想到了什麼問題。一個想法可能是提取一個函數f(x) = a + x * b
(這很容易)並迭代已知數量的點。與迭代點距離最大的基準點被移除並插入到原點距離最大的迭代位置。
你說「有些值是錯的。」那是多套嗎?即假設任何給定集合中只有一個錯誤值是否安全? (因爲知道「數據」是複數,所以+1 +1) – Pops 2011-05-25 15:52:56
「距離相近」是什麼意思?序列32,42,51,61,71,83被修正爲32,42,52,62,72,82(假設我們知道正確的距離是10)? – 2011-05-25 19:48:16
@LordTorgamus:不知道/有多少錯誤值。 – mafu 2011-05-26 08:24:08