[英]Standard Deviation c++ Formula advice
我有這個作業,我將在其中顯示提示:
編寫一個程序,從用戶那里讀入一組測試分數數據。 (測試分數應以十進制形式輸入以表示百分比等級)。 一旦用戶完成輸入測試分數(輸入 -1 將表示輸入結束),打印出輸入的測試數量、測試的平均值和標准偏差。 使用以下公式(Welford's method)計算標准偏差: (Standard Deviaton Formula)
您可以通過在處理輸入值時跟蹤計數(測試次數)、總和和平方和來計算此數量。 注意:雖然有其他方法可以計算標准偏差,但請使用此方法。 使用此方法是因為它只需要一次數據傳遞。 不要使用數組或向量。
現在下面的代碼是我到目前為止所擁有的。 在終端中,我得到了錯誤的平均值和標准數字。 偏差輸出(Terminal Output) 。 我的數學有問題嗎? 任何幫助表示贊賞。 編輯:這是我正在使用的數據以及我應該得到的預期結果:
1. 67.8
2. 95.6
3. 89.5
4. 76.7
5. 71.3
6. 83.2
7. 90.6
8. 56.1
9. 98.6
10. 85.2
結果:
Number of Test Scores: 10
Average : 81.46
Std. Deviation: 13.39
代碼
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double sum = 0;
double sumSq = 0;
double grade = 0;
int numtests = 0;
cout << "Enter the test scores. Once finished, enter -1 to end input.\n";
cin >> grade;
while (grade != -1)
{
cin >> grade;
sum = sum + grade;
sumSq = sumSq + pow(grade, 2);
numtests++;
}
double average = (sum / numtests);
double std = (sumSq - numtests * pow(average, 2) / (numtests - 1));
cout << "The number of scores: " << numtests << "\n";
cout << "Average: " << average << "\n";
cout << "Std. Deviation: " << std << "\n";
return 0;
}
您已經編寫了函數,因此“-1”是計算的一部分,這不是您想要的。 我可以為你修復它,但我認為你可以從這個提示中得到它。 現在我再看一遍,第一個數字不是您計算的一部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.