簡體   English   中英

證明復雜性證明的順序

[英]Proving the order of complexity proofs

證明如果 f(n) 是 Ω(n∗g(n)),那么 f(n) 不是 O(g(n))。

假設 f(n) 是 Ω(n ∗ g(n)) 並且 f(n) 是 O(g(n))。 想表現出矛盾。 該方法是找到違反定義的 n 值。 證明:f(n) 是 Ω(n ∗ g(n)) 意味着存在正值 C 和 k,使得 n > k 意味着 f(n) ≥ C ∗ n ∗ g(n)。 f(n) 是 O(g(n)) 意味着存在正值 C' 和 k' 使得 n > k' 意味着 f(n) ≤ C ∗ g(n)。

假設如下:Omega 表示下界復雜度,Big Oh 表示上界復雜度,使用兩者的定義解決這個問題。

如果 f(n) 是 Omega(n*g(n)) 那么這意味着(根據定義)存在一個 n 0和一個 M 0 ,這樣對於所有 n > n 0 , f(n) > M 0 * n * g(n)。

如果 f(n) 是 O(g(n)) 那么這意味着(根據定義)存在 n 1和 M 1 ,這樣對於所有 n > n 1 , f(n) < M 1 * g (n)。

讓 n 2 = max(n 0 , n 1 ),然后對於所有 n > n 2 ,M 1 * g(n) > f(n) > M 0 * n * g(n)。

我們現在將關注兩個復雜性,而不是函數。 我們有 M 1 * g(n) > M 0 * n * g(n),因此 M 1 > M 0 * n,因此 n < M 1 /M 0

現在,無論 M 1和 M 0取什么值,對於所有 n > n 2 ,n < M 1 /M 0都不是真的,如果我們假設兩個復雜性都是正確的,這是必要的。

因此,我們得出了一個矛盾,因此這兩種復雜性不可能同時成立。

祝你學業順利。

暫無
暫無

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

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