在 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