时间复杂度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;
}
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/288717.html