我的要求是,每次我需要计算所提供成本的平均值。目前我正在使用以下公式来计算它:
平均成本=(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.请分享您的想法
答案 0 :(得分: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)