三分法小結

2021-08-27 19:53:00 字數 481 閱讀 5080

二分法作為分治中最常見的方法,適用於單調函式,逼近求解某點的值。但當函式是凸性函式時,二分法就無法適用,這時三分法就可以「大顯身手」~

如圖,類似二分的定義left和right,mid = (left + right) / 2,midmid = (mid + right) / 2;

如果mid靠近極值點,則right = midmid;否則(即midmid靠近極值點),則left = mid;

模版如下:例如某函式值在當角度遞增的時候呈凸性,那麼我們可以對角度進行三分處理。

(注意浮點處理與整型處理的區別)

double l = 0, r = pi / 2;

while (r - l >= 1e-6)//讓r無限逼近l

[/printf("%.2lf\n", judge((r + l) / 2)//用逼近後的中間值

此處可求出滿足judge函式的最大值的角度值。

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

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

三分法查詢

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

模板 三分法

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