[英]Ordering functions by Asymptotic Growth Rate
以漸近增長率的降序排列以下功能。 如果兩個或多個函數具有相同的漸近增長率,則將它們組合在一起。
g1(n)= n
g2(n)= n ^ 3 + 4n
g3(n)= 2n log(以2為底)n
g4(n)= 2 ^ n
g5(n)= 3 ^(3 * log(以3為底的n)n)
g6(n)= 10 ^ n
我一直在網上瀏覽幾個示例,但是我不知道該怎么做,對我來說這似乎是一個完全陌生的概念。 如果有人可以幫助我,將不勝感激。 我什至如何計算增長率?
您可能在這里發現最有用的許多技術都是處理涉及對數和指數的表達式的技巧。
首先,您可能想查看對數的冪規則:
a log b c = log b c a 。
接下來,存在一個事實,即指數和對數彼此相反:
log b b n = b log b n = n
例如,這些規則可以幫助您重寫g 5 (n)。
這是另一個有用的規則:
(a b ) c = a bc =(a c ) b 。
您實際上可以使用前面的兩個規則來更改指數函數的基數。 例如,假設您要比較2 n與5 n 。 注意
5 n =(2 log 2 5 ) n
=(2 n ) log 2 5 。
這樣是否更容易看出這兩個功能中的哪一個將更快地增長?
最后,您可能想使用以下事實:所有多項式的增長都比所有底數大於1的指數慢。這意味着,對於任何n> 1,n k的增長都比n嚴格慢。類似地,所有多項式的增長都比所有對數,因此對於所有k> 0,記錄b n <n k 。
使用以上規則,查看是否可以嘗試將每個表達式重寫為n的對數,n中的多項式或n中的指數形式。 然后,您可以從那里對數表達式對自己,對多項式對自己,對指數對自己進行排序,然后按順序將它們寫出來。
一般來說,這里提到的技術在將來很有用。 我希望這能使您走上正確的道路!
有一個非常簡單的規則可以解決這些問題。 使用微積分和復雜性的基本定義很容易證明(並且可能是一個很好的啟動方法)。
給定兩個函數f(n)和g(n) :
如果lim n→∞f (n)/ g(n)= 0 ,則f(n)= o(g(n) 。
如果lim n→∞f (n)/ g(n)=∞ ,則f(n)= w(g(n) (從上一點起)。
如果lim n→∞f (n)/ g(n)= c , 0 <c <∞ ,則f(n)=Θ(g(n) 。
在這里查看您的示例,可以使用它們解決每一個示例。 例如, lim n→ ∞g1(n)/ g2(n)= 0 ,所以g1(n)= o(g2(n)) 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.