我的C#标准差代码是否正确?

时间:2012-01-08 22:27:06

标签: c# math statistics

所以我正在尝试计算C#中的标准差,我得到了以下代码:

    double M = 0.0;
    double S = 0.0;
    int period = Values.Length;
    int k;
    double tmpM;
    double value;
    for(int i = 0; i < period; i++){
        tmpM = M;
        value = Values[i];
        k = i + 1;
        M += (value - tmpM) / k;
        S += (value - tmpM) * (value - M);
    }
    stdev = Math.Sqrt(S / (period - 1));

其中Values是我正在尝试获取标准差的数据数组

您认为我的代码是正确的还是我错过了什么?

顺便说一下,我试图实现这一点:http://www.johndcook.com/standard_deviation.html

1 个答案:

答案 0 :(得分:2)

它无法正确处理period == 1的情况。在这种可能性中,你将除以零。

否则我相信你的代码是正确的。