簡體   English   中英

解決以下重復問題:T(n)= T(n / 3)+ T(n / 2)+ sqrt(n)

[英]Solving the following recurrence: T(n) = T(n/3) + T(n/2) + sqrt(n)

我正在嘗試解決以下重復問題:T(n)= T(n / 3)+ T(n / 2)+ sqrt(n)我目前已經執行了以下操作,但不確定是否在正確的軌道上:

  1. T(n)<= 2T(n / 2)+ sqrt(n)
  2. T(n)<= 4T(n / 4)+ sqrt(n / 2)+ sqrt(n)
  3. T(n)<= 8T(n / 8)+ sqrt(n / 4)+ sqrt(n / 2)+ sqrt(n)
  4. 因此,n /(2 ^ k)= 1,並且sqrt部分簡化為:(a(1-r ^ n))/(1-r)
  5. K = log2(n)並且高度為2 ^ k,所以2 ^(log2(n))但:

    我不確定如何將2 ^(log2(n))的結果與sqrt(n)部分相結合。

一個很好的初始嘗試是確定時間復雜度函數的上限下限 這些是由:

在此處輸入圖片說明

這兩個函數比T(n)本身更容易解決。 考慮稍微更一般的功能:

在此處輸入圖片說明

我們什么時候停止遞歸? 我們需要一個停止條件 由於沒有給出,因此可以假設它為n = 1而不會失去一般性(希望您會看到如何)。 因此,項數m由下式給出:

在此處輸入圖片說明

因此,我們可以獲得T(n)上下限:

在此處輸入圖片說明


我們可以做得更好嗎? 即獲得nT(n)之間的確切關系?

從我以前的答案在這里 ,我們可以推導出二項式求和公式T(n)

在此處輸入圖片說明

哪里

在此處輸入圖片說明

C使得n = CT(n)的停止條件。 如果沒有給出,我們可以假設C = 1而不會失去一般性。


在您的示例中, f(n) = sqrt(n), c1 = c2 = 1, a = 3, b = 2 因此:

在此處輸入圖片說明


我們如何評估內部和? 考慮具有正指數m的二項式展開的標准公式:

在此處輸入圖片說明

因此,我們將x, y替換為公式中的相應值,並得到:

在此處輸入圖片說明

我們使用標准幾何級數公式和對數規則到達了最后兩個步驟。 請注意,該指數與我們之前發現的范圍一致。


一些數值測試可以確認這種關系:

N       T(N)
--------------------
500000  118537.6226
550000  121572.4712
600000  135160.4025
650000  141671.5369
700000  149696.4756
750000  165645.2079
800000  168368.1888
850000  181528.6266
900000  185899.2682
950000  191220.0292
1000000 204493.2952

log T(N)對於log N

在此處輸入圖片說明

這樣的圖m的梯度使得T(N) ∝ N^m ,我們看到m = 0.863 ,這非常接近理論值0.861

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM