主方法求解遞迴式

2021-08-17 05:01:16 字數 468 閱讀 4538

求解遞迴式的方法有akra-bazzi方法和strassen方法等等,但是akra-bazzi方法有點難用,但它可以求解那些子問題劃分不均衡的演算法的遞迴式。主方法很容易使用,但只能用於子問題規模相等的情況。

這幾天看了點對遞迴式進行求解,稍微了解到可以通過主方法很快的把使用分治策略解決的問題的時間複雜度,或者說是解出遞迴的時間複雜度。大概就是這樣子了,下面我們把主方法依賴的定理說一下:

定理1.1(主定理) 領a>=1和b>1是常數,f(n)是乙個函式,t(n)是定義在非負整數上的遞迴式:

t(n)=at(n/b)+f(n)

其中我們將n/b解釋為向上取整n/b或向下取整n/b。那麼t(n)有如下漸進界:

有了主方法,我們就可以直接從遞迴式求解出結果。對於上邊的三種情況,我們都是需要將函式f(n)和

主定理(主方法)求解遞迴式

用主方法求解遞迴式有條件,必須要求遞迴式為以下形式 其中a 1,b 1,f n 漸進趨正,意為對足夠大的n,f n 是正的,即n n 0n 0 n0 時,f n 0。其中 n為問題規模,a為遞推的子問題數量,n b 為每個子問題的規模 假設每個子問題的規模基本一樣 f n 為遞推以外進行的計算工作。...

遞迴式求解

1 t n 不是單調函式,e.g.t n sinx 2 f n 不是多項式函式 e.g.t n t n 2 2n 3 b不能表示為乙個常量 e.g.t n 2t n 1 t n t n 2 1 2 n2 n 解 此時 a 1,b 2,f n 1 2 n2 n 故 nlogba n0 1f n nlo...

分治策略 求解遞迴式的方法

分解 將原問題劃分成形式相同的子問題,規模可以不等,對半或2 3對1 3的劃分。解決 對於子問題的解決,很明顯,採用的是遞迴求解的方式,如果子問題足夠小了,就停止遞迴,直接求解。合併 將子問題的解合併成原問題的解。這裡引出了乙個如何求解子問題的問題,顯然是採用遞迴呼叫棧的方式。因此,遞迴式與分治法是...