所以我使用这种方法来计算我的数组的标准偏差,但它似乎没有给我正确的值。标准偏差计算在C#中不起作用?
double numbers[] = new double[10];
double sumOfAllItems = 0;
private double total()
{
for (int i = 0; i < numbers.Length; i++)
{
sumOfAllItems += numbers[i];
}
return sumOfAllItems;
}
public double mean()
{
// working
**sumOfAllItems = 0;**
return total()/numbers.Length;
}
// numbers are from (1-10) (too lazy to type up all of them.
public double variance()
{
// each (value - mean) squared
double summationsTotal = 0; // (numbers[i] - mean() squared
for (int i = 0; i < numbers.Length; i++)
{
summationsTotal += Math.Pow(numbers[i] - mean(), 2);
}
return summationsTotal/(numbers.Length - 1);
}
我手动计算了差异,它给了我一个9.166666的答案。这是针对样本公式的。
但是,当我在我的GUI上计算它时,它给了我866.25。这段代码有什么问题吗?
你能张贴'平均()'的代码? –
可能是因为BODMAS?你有没有试过先从'numbers [i]'中减去'mean',然后将其平方? – user959631
完成编辑。 @RogerRowland – puretppc