gpt4 book ai didi

c++ - (z-xi)^2 的最小化

转载 作者:搜寻专家 更新时间:2023-10-31 00:13:15 25 4
gpt4 key购买 nike

如果我想找到一个中位数(相当于最小化一个函数|z - xi|),我可以使用下面的代码片段:

std::vector<int> v{5, 6, 4, 3, 2, 6, 7, 9, 3};

std::nth_element(v.begin(), v.begin() + v.size()/2, v.end());
std::cout << "The median is " << v[v.size()/2] << '\n';

有没有这样的东西,找到“median”来最小化(z-xi)^2?也就是说,我想找到一个数组元素,其中这些函数的总和将是最小的。

最佳答案

如果您想根据比较(z - xi) ^ 2 的谓词找到nth_element(),您可以将相应的逻辑添加到您的二元谓词中可以选择传递给 nth_element():

auto trans = [=](int xi){ return (z - xi) * (z - xi); };
std::nth_element(v.begin(), v.begin() + v.size() / 2, v.end(),
[&](int v0, int v1) { return trans(v0) < trans(v1); });

从问题来看,zxi 是否是变化的变量并不清楚。从它的外观来看,我假设 xixi。如果 z 发生变化,只需重命名 lambda trans 中的参数(我刚刚还在捕获中提供了一个 = ...)。

关于c++ - (z-xi)^2 的最小化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27512901/

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