我正在閱讀一篇文章并遇到以下內容:
非正式地,O(g(n)) 可以定義為一組數學函式,其中包含所有不比 g(n)“增長得更快”的函式。因此,下面的所有函式都在集合 O(n2): 中
f(n) = n2 3n 2, f(n) = n log(n), f(n) = 3n 1
。誰能告訴我f(n) = n2 3n 2 如何比 g(n)增長得更快?
uj5u.com熱心網友回復:
誰能告訴我 f(n) = n2 3n 2 如何比 g(n) 增長得更快?
這是理解它的一種方法(有點不正式,但我覺得它更直觀)。
讓L限制為n無窮大f(n)/g(n)
如果L是無窮大,則f(n)增長速度比g(n)(分子壓倒分母)快。
如果L是0然后f(n)增長慢于g(n)(分母壓倒分子)
如果L是有限數,則它們具有相同(可比)的增長率。
uj5u.com熱心網友回復:
我們可以將 O(g(n)) 定義為以下集合:
O(g(n)) = { f(n) ∶ ? c > 0 and n0 > 0 | 0 ≤ f(n) ≤ c ? g(n), ?n ≥ n0 }
這意味著 O(g(n)) 是所有函式 f(n) 的集合,對于某些常數 c 和 n ≥ n0,其增長速度比 g(n) 慢。為了找到 n0 和 c,我們使用如下的理由:
n2 3n 2 ≤ n2 3n2 2n2
n2 3n 2 ≤ 6n2 對于 c = 6 且 n ≥ 1
現在如果你只使用 g(n) = n2 顯然 f(n) = n2 3n 2 會比 g(n) 增長得更快;但是通過正確選擇c的值,對于 n ≥ n0,g(n) 將比 f(n) 增長得更快。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/351309.html
下一篇:C中位運算的模運算
