簡體   English   中英

如果 f(n) = O(g(n)),log(f(n)) = O(log(g(n))?

[英]If f(n) = O(g(n)), is log(f(n)) = O(log(g(n))?

我今天才知道這種關系不成立,因為 log 改變了函數的行為。 但這是真的嗎? 一個例子會很好。

而且如果 f(n) = ϴ(g(n)),log(f(n)) = ϴ(log(g(n)) 會成立嗎?

任何幫助表示贊賞。 提前致謝。

現在評論已經表明這個問題是關於漸近極限而不是算法復雜性.....

您可以使用 L'Hôpital 規則(信息在微分的任何基本文本中)以及ln(x) (自然對數)的導數為1/x的事實來表明f(n)/g(n)的漸近極限f(n)/g(n)等於log(f(n))/log(g(n))的漸近極限。

請注意,這與算法復雜性幾乎沒有關系。

之前的答案不正確。 例如,

f(n)=ag(n)=1 ,其中a是對數的底數。 然后f(n)O(g(n)) 事實上, f(n)<=cg(n)對於所有n>0 ,其中c=a 但是, log(f(n))=1log(g(n))=0 現在1不在O(0) 實際上,不存在常數CN使得1=log(f(n))<=Clog(g(n))=0對於所有n>N

但是,假設log(g(n))>0 由於f(n)O(g(n))我們有常數AN使得f(n)<=Ag(n)對於所有n>=N 現在將log應用於雙方,注意這個函數是單調的,以獲得log(f(n))<=log(Ag(n))=log(A)+log(g(n)) 由於log(g(n))>0存在B使得log((g(n))^B)=Blog(g(n))>=log(A) 因此, log(f(n))<=log(A)+log(g(n))<=Blog(g(n))+log(g(n))=(B+1)(g(n))對於所有n>= N 因此, f(n)O(g(n))

暫無
暫無

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

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