中易网

C#标准差计算

答案:1  悬赏:30  
解决时间 2021-01-10 17:36
  • 提问者网友:流星是天使的眼泪
  • 2021-01-10 12:47
C#标准差计算
最佳答案
  • 二级知识专家网友:妄饮晩冬酒
  • 2021-01-10 13:48
计算标准差,只需要调用Math函数,和Linq的求平均、求和函数就够了,具体实现如下:
public static void Main(string[] args)
{
    double[] array = new[] {60d, 21d, 30d, 10d, 40d};
    double stdDev = CalculateStdDev(array);
    Console.WriteLine(stdDev);

    Console.Read();
}

private static double CalculateStdDev(IEnumerable values)
{
    double ret = 0;
    if (values.Count() > 0)
    {
        //  计算平均数   
        double avg = values.Average();
        //  计算各数值与平均数的差值的平方,然后求和 
        double sum = values.Sum(d => Math.Pow(d - avg, 2));
        //  除以数量,然后开方
        ret = Math.Sqrt(sum / values.Count());
    }
    return ret;
}追问谢谢大神!还有个问题就是我现在用的是System.Collections.ArrayList数组,请问下怎么转换成你使用的那个IEnumerable?追答用Linq转换:
ArrayList list = new ArrayList();
var array = list.ToArray().Select(Convert.ToDouble);array就是IEnumerable类型

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息