编程语言
首页 > 编程语言> > 三分算法

三分算法

作者:互联网

时间复杂度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