2017-06-12 139 views
-2

我的要求是,每次我需要計算提供的成本的平均值。目前我使用下面的公式來計算它:如何從平均值中刪除一個值

平均成本=(previous_average_cost + cost_value)/ 2

加入5至6 cost_value後,我需要刪除從平均成本的cost_value之一。目前我正在考慮如何從平均成本中刪除附加的cost_value。請分享你的想法。

例如:

Step:1 
previous_average_cost = 0 
cost_value = 10 
average cost = (0+10)/2 = 5 

Step:2 
previous_average_cost = 5 
cost_value = 15 
average cost = (5+15)/2 = 10 

Step:3 
previous_average_cost = 10 
cost_value = 20 
average cost = (10+20)/2 = 15 

最後現在的平均成本爲15:我需要從目前的平均成本15.刪除先前添加的cost_value = 15,請分享你的想法

+1

這是不是真的平均。 – matt

+0

是的,我同意。我們是否有任何解決方案? –

+2

問題沒有明確定義。你希望價值成爲沒有第二步的價值嗎?例如。只是一個step1然後第3步? – matt

回答

1

這是不正確:

Average cost = (previous_average_cost + cost_value)/2 

讓我們回顧一下平均的定義:

x(ave) = sum(x)/N 

其中N =點數。

如果你補充一點:

x(new_ave) = (N*x(ave) + y)/(N+1) 

你必須掛到目前的平均和點數才能夠更新。

如果您刪除您已經添加了一個觀點:

x(new_ave) = (N*x(ave) - y)/(N-1) 
+0

平均數是一個非常通俗的術語,OP可以做一個移動平均線。雖然在這種情況下,不清楚「刪除以前的觀點」會導致什麼。 – matt