gpt4 book ai didi

C++从 double 组中减去均值

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:57:53 27 4
gpt4 key购买 nike

我有一个包含大约 10'000 个元素的 double* 数组,必须从中减去平均值。而且这必须做很多。

现在我已经把它戒掉了:

double mt = 0;
for (int i=0; i<n; i++) {mt += array[i];}
mt /= n;
for (int i=0; i<n; i++) {array[i] -= mt;}

其中 array:double & n 的大数组是该数组的大小。我确信有某种方法可以用一些奇特的字符来实现它,这样会更快,我希望你们能帮我解决这个问题。

干杯麻姑

最佳答案

这可以用更短的方式完成,但性能不会明显提高。使用 std::accumulate来自 <algorithm> :

double mean = std::accumulate(array, array + n)/double(n);

然而,您可以做的是记住第一次计算它,然后在下一次迭代中简单地减去 (mt * n)。从总和(假设您在问题中显示的是迭代之间发生的修改。

关于C++从 double 组中减去均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15432319/

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