【模板】三分法
话说我是直接按lyd的书上直接学的,感觉很直观,那些奇奇怪怪的二分求导之类的,黄金比例分割之类的,感觉有点麻烦
能用就可以了,也不算慢
Code:
#include <cstdio>
const double eps=1e-7;
double a[15];
int n;
double f(double x)
{
double s=0,p=1;
for(int i=n+1;i;i--)
{
s+=a[i]*p;
p*=x;
}
return s;
}
int main()
{
double l,r;
scanf("%d%lf%lf",&n,&l,&r);
for(int i=1;i<=n+1;i++) scanf("%lf",a+i);
while(l+eps<r)
{
double ll=l+(r-l)/3.0,rr=r-(r-l)/3.0;
if(f(ll)<f(rr)) l=ll;
else r=rr;
}
printf("%.5lf
",l);
return 0;
}
2018.9.6