如何使用数组查找标准偏差
How to find standard Deviation using arrays
在这个问题中,您将编写一个函数double stddev(double a[],int size(来计算数据集的标准偏差。
#include<iostream>
#include<cmath>
using namespace std;
const int MAX = 50;
void input(int arrays[], int &size){
cout << "How many values do you want to enter?";
cin >> size;
for(int i = 0; i < size; i++){
cout << "Enter a value: ";
cin >> arrays[i];
}
return;
}
int mean(int a[], int size)
{
int sum = 0;
for (int i = 0; i < size; i++)
{
sum += a[i];
}
double average = (double)sum /
(double)size;
double sq = 0;
for (int i = 0; i < size; i++)
sq += (a[i] - average) * (a[i] - average);
return sq / size;
}
double stdDev(int arr[], int size)
{
return sqrt(mean(arr, size));
}
int main()
{
int array[MAX];
int size;
input( array, size);
mean(array,size);
cout<<"Standerd Dev is: "<<stdDev(array,size)<<endl;
return 0;
}
因此,它允许用户输入值,当实际标准偏差大于1时,它会工作,但如果不是,它会打印0。例如,对于5,6,7
,它打印0
,但它应该是.816...
。
我需要帮助理解我做错了什么。这是我的函数中的错误还是我调用main
函数时的错误?
正如我在评论中已经提到的,您将返回mean
(实际计算方差(的结果作为int
。因此,无论你在其中计算什么值(以double
作为中间结果的类型(,它的所有数字都将在小数点后截止。
将您的申报更改为
double mean(int a[], int size)
也许给它一个更合适的名字。
什么是意思?它是数值的平均值。
double mean(int a[], int size)
{
double sum = 0.0;
if( size < 1 ) return sum;
for (int i = 0; i < size; i++) {
sum += a[i];
}
return sum / size;
}
什么是差异?它是每个值与平均值的差值。(留给读者练习,如何一次性计算mean和stddev(。
double variance(int a[], int size)
{
double var = 0.0;
if( size < 1 ) return var;
double mu = mean(a,size);
for (int i = 0; i < size; i++) {
var += (a[i] - mu) * (a[i] - mu);
}
return var / size; //Read about Bessel correction
}
标准偏差是多少?它是方差的平方根。哦,读一下https://en.wikipedia.org/wiki/Bessel%27s_correction和https://en.wikipedia.org/wiki/Standard_deviation#Sample_standard_deviation
double stdDev(int arr[], int size)
{
return sqrt( variance(arr, size) );
}
相关文章:
- 查找标准::hash_map与标准::矢量的速度
- 查找不在标准中的第一个值::设置<int>最小-最大值
- 如何查找 2d 标准::数组中的列数
- C++没有标准功能的立方体根查找器
- 如何使用数组查找标准偏差
- 在地图和列表之间查找标准容器
- 了解标准::地图::查找
- C++ 标准::查找指定起始位置
- 查找标准::boyer_moore_searcher
- 如何使用向量查找平均值和标准差
- 通过引用查找调用范围的标准引用是什么
- 查找字符在标准输入文本中出现的次数
- 标准::map 中的容错键查找
- 是否有一个标准的算法来查找列表项的并集
- C++ 标准::查找自定义比较器不起作用
- 链接器如何查找标准函数和WinAPI函数
- 在C++标准中定义了对非限定 *mem-initializer-id* 的查找
- C++ - 在文本文件中查找和替换(标准系统库)
- 在 2D 标准::矢量<矢量中查找唯一值的有效方法<double>>
- 性能标准::strstr vs. 标准::字符串::查找