作者liaommx (Orz)
看板C_Sharp
标题[问题] 同样数据,让c#和excel算标准差
时间Wed Jun 17 00:28:51 2009
excel算
14.08530558
csharp算出来
14.227170173088554
这是正常吗?_?
PS:excel只有小数8位
csharp double可以到小数下16位.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.187.142
1F:→ james732:你要不要说说你是算了什麽…? 06/17 01:32
2F:推 windsheep:check一下两个算法是不是一样..分母? 06/17 06:34
3F:→ Steven0422:公式有一样吗? 06/17 08:19
4F:→ liaommx:公式是一样的,只是计算能力不同... 06/17 10:14
公式程式码如下
我总共有97个资料,所以97是这样来的.
public double StandardDeviation(double[] num)
{
double avg = Average(num);
double SumOfSqrs = 0.0;
foreach (double d in num)
{
SumOfSqrs += Math.Pow(d - avg, 2);
}
//return Math.Sqrt((SumOfSqrs / (num.Length)));
return Math.Sqrt((SumOfSqrs / (97)));
}
public double Average(double[] num)
{
double sum = 0.0;
foreach (double d in num)
{
sum += d;
}
//return sum / Convert.ToDouble(num.Length);
return sum / Convert.ToDouble(97);
}
※ 编辑: liaommx 来自: 120.125.83.171 (06/17 10:16)
5F:→ liaommx:PS:excel用的是stdev算标准差 06/17 10:30
6F:→ cjcat2266:Excel stdev使用的公式确定完全一样吗? 06/17 11:30
7F:推 hulapig:查了一下,Excel用的公式不一样喔,stdev是除以n-1 06/18 09:15
8F:→ hulapig:stdevp才是除以N 06/18 09:15