在 C++ 中計算標準偏差

Suraj P 2023年1月30日 2022年4月20日
  1. 標準差
  2. 在 C++ 中計算標準偏差
在 C++ 中計算標準偏差

本文將演示在 C++ 程式語言中計算標準差。

標準差

首先,讓我們瞭解什麼是標準差。它是離散度的統計量度,這意味著它衡量的是資料集中的數字相對於平均值的分佈程度。

我們可以通過簡單地找到方差的平方根來獲得標準偏差。方差只不過是與平均值的平方差的平均值。

因此,基於上述討論,要計算標準差,我們必須執行以下步驟:

  • 計算資料集的平均值。
  • 然後,從每個數字中減去平均值並將結果平方。
  • 找到上述平方差的平均值以解決方差。
  • 現在,找到我們在步驟 3 中獲得的方差的平方根。

請參考下面的示例以更好地理解這一點。假設我們有資料集,

100 , 200 , 300 , 400 , 500
  • 資料的平均值為:(100 + 200 + 300 + 400 + 500)/5 = 300
  • 資料方差為: ( (100 - 300)^2 + (200-300)^2 + …+(500-300)^2 )/5 = 20000
  • 標準偏差:方差的平方根 = 141.421

在 C++ 中計算標準偏差

我們必須執行以下步驟來找到 C++ 中的標準差:

  • 從使用者或檔案中獲取輸入資料集。將資料儲存在陣列資料結構中。
  • 找到它的意思。
  • 遍歷每個元素,減去平均值,然後平方結果。
  • 求步驟 3 中結果的平均值。這給了我們方差。
  • 求步驟 4 中獲得的數字的平方根,以獲得標準差。

示例程式碼:

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n;  //number of elements we want user to enter
    cout<<"Enter the number of elements\n";
    cin>>n;

    int arr[n]; //array to store the elements

    cout<<"Enter the elements\n";

    for(int i=0;i<n;i++)
        cin>>arr[i];

    int sum = 0;
    for(int i=0;i<n;i++)
    {
        sum = sum + arr[i];
    }

    double mean = (double)sum/n;

    double sum2 = 0.0;

    for(int i=0;i<n;i++)
    {
        sum2 = sum2 + (arr[i]-mean)*(arr[i]-mean);
    }

    double variance = (double)sum2/n;

    double standardDeviation = sqrt(variance);

    cout<<"Mean: "<<mean<<endl;
    cout<<"Variance: "<<variance<<endl;
    cout<<"Standard deviation: "<<standardDeviation;
}

輸出:

Enter the number of elements
5
Enter the elements
100
200
300
400
500
Mean: 300
Variance: 20000
Standard deviation: 141.421
Author: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub

相關文章 - C++ Math