C++Boost最大偏差

C++ Boost Max Deviation

本文关键字:C++Boost      更新时间:2023-10-16

这有点脑筋急转弯,我想知道是否有一种简单的方法可以使用Boost使用accumulator_set获得值与平均值的最大偏差?只是离平均值最远的一点。

值在accumulator_set<float, stats<tag::variance>> val中,尽管我怀疑可能需要其他标记。

// defined by: MAX(abs(val[x] - mean)) 
float max_stdev(accumulator_set<float, stats<tag::variance>>& val) {
  // mean(val) gives mean
  // can't just use max on the set 
}
// e.g. val contains 1,2,3
accumulator_set<float, stats<tag::variance>> val
val(1), val(2), val(3);
float max_val = max_stdev(val);  // would return 1

最大偏差为最大值减去平均值或平均值减去最小值,以较大者为准。这表明了以下简单的实现:

double max_deviation(accumulator_set<double, features<tag::min, tag::max, tag::mean> > const &acc) {
  return std::max(max(acc) - mean(acc), mean(acc) - min(acc));
}