2016-03-31 20 views
-5

私は2,5,1,3の数字を入れたときに、私の分散に問題がある結果は3,46ですが、正しいは2,18分散間違った計算のC#

double result=0; 
string x1 = textBox1.Text; 
string[] tab = x1.Split(','); 
int n = tab.Length; 
double sum = 0; 
double ob = 0; 

for (int i = 0; i < n; i++) 
{ 
    sum = sum + double.Parse(tab[i]); 
    result = sum/n; 
    ob = (ob + Math.Pow((double.Parse(tab[i]) - result),2))/n; 

} 

textBox2.Text = ob.ToString(); 
+2

forループの最後の2行を外側に置くべきですか? –

+0

なぜ2,18が正しいですか?あなたのコードは実際に何をすべきですか? –

答えて

1

式の標準的な分散があるためです。

enter image description here

あなたが見ることができるように、あなたは合計を計算した後、nで除算する必要があります。 あなたの部門はループに入っています。 この操作をループのアウトサイトで実行する場合は、正しい結果が返されます。

+0

thx mate works! – Ops

関連する問題