所以我使用這種方法來計算我的數組的標準偏差,但它似乎沒有給我正確的值。標準偏差計算在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