三分算法
作者:互联网
时间复杂度O(2log(3)n)//以3为底
单谷函数求最大值
double l=0,r=1000;
while(r-l>1e-9)
{
double lmid=l+(r-l)/3;
double rmid=r-(r-l)/3;
if(check(lmid)<=check(rmid))
l=lmid;
else
r=rmid;
}
单谷函数求最小值
double l=0,r=1000;
while(r-l>1e-9)
{
double lmid=l+(r-l)/3;
double rmid=r-(r-l)/3;
if(check(lmid)>=check(rmid))
l=lmid;
else
r=rmid;
}
标签:rmid,double,while,算法,1e,lmid,check,三分 来源: https://www.cnblogs.com/2021sgy/p/16683217.html