Algs4-1.2.18累加器的方差

1.2.18累加器的方差。以下代码为Accumulator类添加了var()和stddev()方法,它们计算了addDatavalue()方法的参数的方差和标准差,验证这段代码。
public class Accumulator
{
    private double m;
    private double s;
    private int N;
    public void addDataValue(double x)
    {
        N++;
        s=s+1.0*(N-1)/N*(x-m)*(x-m);
        m=m+(x-m)/N;
    }
   
    public double mean()
    {return m;}
   
    public double var()
    {return s/(N-1);}
   
    public double stddev()
    {return Math.sqrt(this.var());}
}
与直接对所有数据的平方求和的方法相比较,这种实现能够更好地避免四舍五入产生的误差。
posted @ 2018-10-25 11:50  修电脑的龙生  阅读(284)  评论(0编辑  收藏  举报