一、方差和标准差的定义
方差是各样本值与均值之差的平方值的平均数。标准差是方差的算术平方根。
标准差/方差反映一个数据集的离散程度。标准差/方差越大,表示数据的波动越大;标准差/方差越小,表示数据的波动越小。
二、关键代码
// 计算均值
auto size = std::distance(first, last); // 两个迭代器/指针之间的距离,即样本数量
double avg = std::accumulate(first, last, 0.0) / size;
// 计算方差
double variance(0);
std::for_each(first, last, [avg, &variance](const ValueType &num) {
variance += (num - avg) * (num - avg); });
variance /= size;
// 计算标准差
auto standardDeviation = std::sqrt(variance);
三、代码示例
1)utils.h
/*
* Copyright (c) 2023 All rights reserved
* Filename: utils.h
* Brief: 工具函数
* Depend: C++14
*
* Version: V1.0.0
* Date: 2023/03/07
* Author: LucianY(https://blog.youkuaiyun.com/LucainY)
* Note: 初次版本。
*
*/
#include <cmath>
#inc