1. 二分法就是一个有序的数列的最简单快速的查找,即一次二分,取中间数,是猜大了,还是小了,变化区间上界或者下界,重复,知道查找到所需的数字;
2. 三分是二分的变形;
一个三分的核心代码:
double cmid,cmidmid;
while(low+eps<high)
{
mid=(low+high)/2;
midmid=(mid+high)/2;
cmid=huhu(mid);
cmidmid=huhu(midmid);
if(cmid<cmidmid)
low=mid;
else high=midmid;
}
double huhu(double x)
{
return 题目中的函数表达式;
}
一个二分的核心代码:
double huhu(double x)
{
return 题目的函数表达式;
}
r=0;l=100;
cin>>n;
mid=r+l;
while(huhu(mid)-n<eps)
{
if(huhu(mid)>n)
l=mid-1;
else r=mid+1;
mid=(l+r)/2;
}
cout<<mid<<endl;