社区讨论

关于二分

学术版参与者 5已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@loc7jj7y
此快照首次捕获于
2023/10/30 09:14
2 年前
此快照最后确认于
2023/11/04 18:36
2 年前
查看原帖
请问这两个二分有什么区别吗
EPS=1e-8
C
double res=INF,l=0,r=1e9;
while(l+EPS<=r){
    double mid=(l+r)/2.0;
    if(Check(mid)) res=mid,l=mid+EPS;
    else r=mid-EPS;
}
return res;
C
double res=INF,l=0,r=1e9;
while(fabs(r-l)<=EPS){
    double mid=(l+r)/2.0;
    if(Check(mid)) res=mid,l=mid+EPS;
    else r=mid-EPS;
}
return res;
两个交上去都过了
但是第一种本地跑当答案不在区间内时就会死循环
输出出来l已经等于r了却没有退出

回复

6 条回复,欢迎继续交流。

正在加载回复...