簡體   English   中英

標准偏差 c++ 公式建議

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM