2025年3月25日 星期二 甲辰(龙)年 月廿四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > VC/VC++

c++求一维数组标准差

时间:03-01来源:作者:点击数:53

最近写的一段c++算法中需要计算标准差,于是就造了个轮子,顺便记录下来...

看如下公式,可以推断出计算标准差分为几步:

  1. 计算平均值u=(x1+x2+...+xn)/n
  2. 计算方差s²=((x1-u)^2 +(x2-u)^2 +...+(xn-u)^2)/n
  3. 计算标准差σ=sqrt(s²)
  • /**
  • * 求平均值
  • */
  • double average(double *x, int len)
  • {
  • double sum = 0;
  • for (int i = 0; i < len; i++) // 求和
  • sum += x[i];
  • return sum/len; // 得到平均值
  • }
  • /**
  • * 求方差
  • */
  • double variance(double *x, int len)
  • {
  • double average = average(x, len);
  • for (int i = 0; i < len; i++) // 求和
  • sum += pow(x[i] - average, 2);
  • return sum/len; // 得到平均值
  • }
  • /**
  • * 求标准差
  • */
  • double average(double *x, int len)
  • {
  • double variance = variance(x, len);
  • return sqrt(variance); // 得到标准差
  • }

最后,注意double *x在使用后的释放问题,遵循"谁申请谁释放"(new[]/delete[])原则

  • if(NULL != x)
  • {
  • delete[] x;
  • x = NULL;
  • }
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门