2011-04-08 67 views
0

我正在修改考試,並且在互聯網上發現了這個問題,並想知道如何解決它。大O問題 - 算法分析

(帶基體2日誌)
證明日誌(2 Ñ)是O的成員(日誌Ñ)。

我給了它一個去,但我不知道如果我是正確的,因爲沒有答案已經提供。能否請你幫忙?

這裏是我的嘗試:

日誌2 ñ - ç日誌ň 日誌2 +登錄ñ - ç日誌ň 1 +(1- c)log n

實施例(我然後通過對數Ñ劃分):Ñ = 8和Ç = 10的計算結果爲小於零。因此它是true

我的問題是:

  1. 我這樣做對嗎?

  2. 我的答案可以進一步簡化嗎?

+0

-1,沒有必要侮辱他人的; larsmans的答案也是如此簡潔和正確。 – abeln 2011-04-08 15:14:50

+3

你想證明log(2n)是O(log(n))。由於在漸近分析中可以忽略log(2n)= log(2)+ log(n)和低階項(在這種情況下爲log(2)),所以結果如下。 – abeln 2011-04-08 15:27:48

回答

4

長答案是

   log(2n)  log(2) + log(n)  log(2) 
lim n->infinity ------- = lim --------------- = lim ------ + 1 = 0 + 1 = 1 
       log(n)  log(n)    log(n) 

因爲這兩個功能中的極限比率存在(即是有界的),它們具有相同的漸近的複雜性。

以同樣的方式,證明爲O(n )不是爲O(n),你會做

lim n->infinity (n^2/n) = lim n which tends to infinity 

做這爲O(n)與O(log n)的需要更多的工作,因爲

lim n->infinity (n/log n) 

需要以某種方式處理。訣竅是你可以使用衍生物,因爲極限中的導數也需要漸近地相關(否則它們的積分不是,即原始函數)。你把n的導數,也就是1,而日誌N,它是N -1,之後

lim n->infinity (1/(1/n)) = lim n which tends to infinity 
7

lg(2n) = lg(2) + lg(n).

LG(2)是一個常數。參見維基百科,Logarithmic identities

+0

嗯 - 我不確定你從哪裏得到了lg(2)。 lg(2n)= lg(2)+ lg(n)肯定.... – user559142 2011-04-08 13:41:30

+4

它是一個新的句子。它不是前一個等式的一部分:) – flolo 2011-04-08 13:41:57