三分法求點到拋物線的最短距離

2021-09-12 09:33:55 字數 786 閱讀 2444

首先三分法簡單說就是判斷序列的最大最小值,該序列為乙個凸性函式。通俗來講,就是該序列必須有乙個最大值(或最小值),在最大值(最小值)的左側序列,必須滿足不嚴格單調遞增(遞減),右側序列必須滿足不嚴格單調遞減(遞增)。

然後再對二分進行二分,

我們mid比midmid更靠近最值,我們就捨棄右區間,否則我們捨棄左區間。

比較mid與midmid誰最靠近最值,只需要確定mid所在的函式值與midmid所在的函式值的大小。當最值為最大值時,mid與midmid中較大的那個自然更為靠近最值。最值為最小值時同理。

題目:已知點p(x,y),求點p到y=ax^2+bx+c的最短距離。

輸入:a,b,c,x,y.(高精度)。

輸入:最短距離(保留3位小數)

樣例輸入:16 107 8 75 173

輸出:73.706

其實這題還蠻有坑點的,

首先要明白距離d的公式:即 d = min,化簡後也對於d的公式也滿足凸性函式。

其實在高精度比較時,不能用,==直接比較

#includeusing namespace std;

double a, b, c, x, y;

double judge(double xx)

int main()

printf("%.5f\n",judge(l));

} return 0;

}

三分法(洛谷3382 模板 三分法)

如題,給出乙個n次函式,保證在範圍 l,r 內存在一點x,使得 l,x 上單調增,x,r 上單調減。試求出x的值。輸入格式 第一行一次包含乙個正整數n和兩個實數l r,含義如題目描述所示。第二行包含n 1個實數,從高到低依次表示該n次函式各項的係數。輸出格式 輸出為一行,包含乙個實數,即為x的值。四...

三分法小結

二分法作為分治中最常見的方法,適用於單調函式,逼近求解某點的值。但當函式是凸性函式時,二分法就無法適用,這時三分法就可以 大顯身手 如圖,類似二分的定義left和right,mid left right 2,midmid mid right 2 如果mid靠近極值點,則right midmid 否則...

三分法查詢

我們都知道 二分查詢 適用於單調函式中逼近求解某點的值。如果遇到凸性或凹形函式時,可以用三分查詢求那個凸點或凹點。下面的方法應該是三分查詢的乙個變形。如圖所示,已知左右端點l r,要求找到白點的位置。思路 通過不斷縮小 l,r 的範圍,無限逼近白點。做法 先取 l,r 的中點 mid,再取 mid,...