gpt4 book ai didi

c++ - 比较中的二进制搜索和 eps

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:10:48 28 4
gpt4 key购买 nike

我在二进制搜索中有 2 个比较,但我无法在两个底层之间做出确切的偏好。我在下面的两个示例中摇摆不定:

for (int step = 0; step < 100; ++step) {
double middle = (left + right) / 2;
if (f(middle) > 0) right = middle; else left = middle;
}

for (int step = 0; step < 100; ++step) {
double middle = (left + right) / 2;
if (f(middle) > eps) right = middle; else left = middle;
}

f 是一个单调递增函数,因为即使 eps 很小,二分搜索参数中的相应误差也有很大的危险。另一方面,即使由于舍入误差我们对相等值的比较不正确,二分查找仍然会正确收敛,因为相等值可能只出现在一个点上,而在非常接近它的点上一切都是正确的。我想对此有一个想法。

最佳答案

从您的代码来看,您正试图决定函数何时具有零值。第一种方法已经足够好了,因为它符合你的意图。看来没有必要用第二种方法了。

关于c++ - 比较中的二进制搜索和 eps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8733361/

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