任意多个数字求平均数
我们在进行数据的平均计算时,通常采用先求和再除以数量进行平均的方法。但是这个方法有个隐患,就是如果进行平均的数字数量很多,求和时难免要溢出,导致错误结果。
为了解决这个问题,我们可以这样做:
如果我们有了n个数字的平均数avg,当第n+1个数字num想要参与平均,那么在新的平均数中,avg要占n/n+1,而num则占1/n+1。所以n+1个数字的平均数为avg/(n+1)*n+num/(n+1)。
数学证明:设A为n个数字的平均值,即
A = M 1 + M 2 + . . + M n n A=\frac{M_{1}+M_{2}+..+M_{n}}{n} A=nM1+M2+..+MnB为n+1个数字的平均值
B = M 1 + M 2 + . . + M n + M n + 1 n + 1 B=\frac{M_{1}+M_{2}+..+M_{n}+M_{n+1}}{n+1} B=n+1M1+M2