gpt4 book ai didi

C++ 均值和中值绝对偏差返回相同的奇怪符号

转载 作者:行者123 更新时间:2023-11-28 02:56:47 24 4
gpt4 key购买 nike

我正在研究两个函数来计算 vector 数据集的平均绝对偏差和中值绝对偏差。我在其中使用了一个重载的 calcAverage 函数。问题是,我为两个函数调用返回了相同的错误值。

这是输出。它是给我科学记数法还是什么?

Mean absolute deviation = 4.09929e-016
Median absolute deviation = 4.09929e-016

这是平均绝对分布函数:

double calcMeanAD(vector<int> data_set){

vector<double> lessMean;
double mean = calcAverage(data_set);

for (auto it = data_set.begin(); it != data_set.end(); ++it){
lessMean.push_back(*it);
}

for (auto it = lessMean.begin(); it != lessMean.end(); ++it){
*it -= mean;
}

return calcAverage(lessMean);

}

这是中位数绝对分布函数:

double calcMedAD(vector<int> data_set){

vector<double> lessMed;
double median = calcAverage(data_set);

for (auto it = data_set.begin(); it != data_set.end(); ++it){
lessMed.push_back(static_cast<double>(*it));
}

for (auto it = lessMed.begin(); it != lessMed.end(); ++it){
*it -= median;
}

return calcAverage(lessMed);

}

任何人都可以发现错误的地方吗?谢谢。

最佳答案

这两个函数都返回零并带有一些舍入误差。

写下您要计算的值的代数表达式,并将其与您的代码进行比较。

我不知道 calcAverage 做了什么,但它没有重载;你用 vector<double> 来调用它两次。它无法同时计算平均值和中位数。

提示:你似乎忽略了绝对中位数的含义

关于C++ 均值和中值绝对偏差返回相同的奇怪符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21792541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com