簡體   English   中英

求解遞歸關系:T(n)= 3T(n / 5)+ lgn * lgn

[英]Solving Recurrence relation: T(n) = 3T(n/5) + lgn * lgn

Consider the following recurrence
T(n) = 3T(n/5) + lgn * lgn

What is the value of T(n)?

(A) Theta(n ^ log_5{3})
(B) Theta(n ^ log_3{5})
(c) Theta(n Log n )
(D) Theta( Log n )

Answer is (A)

我的方法:

lgn * lgn = theta(n)因為c2lgn <2 * lglgn <c1 * lgn對於某些n> n0

上圖不等式如圖所示,c2 = 0.1,c1 = 1

log_5 {3} <1,

因此,通過主定理,答案必須是theta(n),並且沒有一個答案匹配。 如何解決這個問題呢??

你聲稱lg n * lg n =Θ(n)是假的。 請注意,當n變為無窮大時,(lg n) 2 / n的極限趨於0。 你可以使用l'Hopital的規則看到這個:

lim n→∞ (lg n) 2 / n

= lim n→ ∞2lg n / n

= lim n→∞2 / n

= 0

更一般地,使用類似的推理,您可以證明對於任何ε> 0,lg n = o( )。

讓我們嘗試使用主定理解決這種復發。 我們看到有三個子問題,每個大小為n / 5,所以我們應該看一下log 5的值。由於(lg n) 2 = o(n log 5 3 ),我們看到遞歸是重底的並且可以得出結論,遞推求解為O(n log 5 3 ),這是上面列表中的答案(A)。

希望這可以幫助!

要應用主定理,我們應該檢查它們之間的關系

n log 5 (3) 〜= n 0.682和(lg(n)) 2

不幸的是lg(n) 2 != 2 * lg(n):它是lg(n 2 )等於2 * lg(n)

此外,在主定理中,如果f(n)為O(n log b (a)-ε ),或者代之以Θ(n log b a ),則存在很大差異:如果前者成立,我們可以應用案例1,如果后者持有定理的情況2。

只需一眼,它看起來非常不可能(lg(n)) 2 =Ω(n = 0.682 ),所以讓我們試着證明(lg(n)) 2 = O(n 0.682 ),即:

∃N 0,C∈N +,使得對於n> N 0,(LG(N))2 <C * N 0.682

讓我們取兩邊的平方根(假設n> 1,不等式成立)

lg(n)<c 1 * n 0.341 ,(其中c 1 = sqrt(c))

現在我們可以假設,lg(n)= log 2 (n)(否則乘法因子可以被我們的常數吸收 - 正如你所知,常數因子在漸近分析中無關緊要)並且指數化兩邊:

2 lg(n) <2 c 2 * n 0.341 <=> n <2 c 2 * n 0.341 <=> n <(n 2 0.341c 2 <=> n <(n 2 0.341c 2 <=> n <(n 1.266c 2

選擇c 2 = 1和n 0 = 1時,這是立即成立的

因此,確實f(n)= O(n log b (a)-ε ),我們可以應用主定理的情況1,並得出結論:

T(n)= O(n log 5 3

同樣的結果,更正式一點。

暫無
暫無

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

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