基础课学习笔记(汇总){:target=”_blank”}
bool check(double x) {/* ... */} // 检查x是否满足某种性质
double bsearch_3(double l, double r) {
// 定义一个 eps, 处理精度问题
const double eps = 1e-6;
// 注意循环条件不要写错
while (r - l > eps) {
// 步骤 A: 找中间值
double mid = (l + r) / 2;
// 步骤 B: 判断是否满足性质
if (check(mid)) r = mid;
else l = mid;
}
return l;
}