看公式,可以推断出计算标准差分为几步:
计算平均值u=(x1+x2+...+xn)/n
计算方差s²=((x1-u)^2 +(x2-u)^2 +...+(xn-u)^2)/n
计算标准差σ=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; }
作者:ThinkinLiu
链接:https://www.jianshu.com/p/dc5cb1346d7d
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦