在 C++ 中计算标准偏差
Suraj P
2023年10月12日
本文将演示在 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
作者: Suraj P