计算平均值防止溢出的方法
程序员文章站
2022-05-31 17:29:38
...
简介
在计算平均值时, 如果累加项过多, 可能会出现累加溢出的情况, 此时需要寻找其他方法。
解决方案
计算含有1000000个元素的double数组的平均值:
主要代码为:
average = average * i/(i+1) + array[i]/(i+1);
示例:
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
上一篇: 妙妙屋-求小于n的所有正整数中1的个数
下一篇: 为Hadoop集群选择合适的硬件配置