计算平均值防止溢出的方法

简介

在计算平均值时, 如果累加项过多, 可能会出现累加溢出的情况, 此时需要寻找其他方法。

解决方案

计算含有1000000个元素的double数组的平均值:

double array[1000000] = {2000.0,30000.1,...}
double average = 0;
for (int i = 0; i < sizeof(array); ++i){
	average = (double)i/(double)(i+1) * average + array[i]/(i+1);
}

平均值为 average

上一篇:AGC009:Eternal Average


下一篇:COCO数据集上的实验