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;