定义一个数组,数据为: 6, 3, 7, 1, 4, 8, 2, 9, 11, 5。请创建一个向量,把数组的初值赋给它,然后对该向量求标准差(均方差) :
#include<iostream>
(720)#include<vector>
#include<cmath> //使用sqrt()
using namespace std;
//-----------------------------------
int main() {
int a[]={6,3,7,1,4,8,2,9,11,5};
int n = sizeof(a)/siazeof(a[10]);
vector<int> va(a, a+n);
double aver=0, sum=0;
for(int i=0; i<n; ++i)
aver += va[i];
aver /= n; //平均值
for(int j=0; j<n; ++j)
sum +=(va[j]-aver)*(va[j]-aver);
cout<<sqrt(sum/n)<<"\n";
}
//----------------------------------- //EX0303.cpp //均方差 //----------------------------------- #include<iostream> #include<vector> #include<cmath> //使用sqrt() using namespace std; //----------------------------------- int main() { int a[]={6,3,7,1,4,8,2,9,11,5}; int n = sizeof(a)/siazeof(a[10]); vector<int> va(a, a+n); double aver=0, sum=0; for(int i=0; i<n; ++i) aver += va[i]; aver /= n; //平均值 for(int j=0; j<n; ++j) sum +=(va[j]-aver)*(va[j]-aver); cout<<sqrt(sum/n)<<"\n"; }//-----------------------------------