簡體   English   中英

證明復雜性證明的順序如果 f(n) 是 Ω(n∗g(n)),那么 f(n) 不是 O(g(n))

[英]Proving Order of complexity proofs if f(n) is Ω(n∗g(n)), then f(n) is not O(g(n))

證明如果 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)。

那么 n 的什么值違反了定義,我該如何表現出矛盾呢?

您通過矛盾證明該陳述的方法是可能的。 但首先,你需要更精確一點:

  1. fg是整數上的正非遞減函數
  2. CC' >= 0
  3. 你的最后一個含義應該是C' * g(n) (而不是C * g(n) )。

所以我們開始:

(a) 存在正整數C , C' , k , k'使得對於所有n > kn' > k'

C * n * g(n) <= f(n) and f(n') <= C' g(n')

通過將您的兩個含義鏈接在一起並將兩個全稱量詞合並為一個(注意for all n > k and n' > k'意味着for all n > max(k,k') ),您立即得到:

(b) 存在正整數C , C' , k , k'使得對於所有n > max(k,k')

C * n * g(n) <= C' g(n)

在兩邊除以g(n) ,這對上面的假設 1 有效,產生等價物:

(c) 存在正整數C , C' , k , k'使得對於所有n > max(k,k')

C * n <= C'

這相當於:

(d) 存在正整數C , C' , k , k'使得對於所有n > max(k,k')

n <= C'/C

最后一條語句等價於 false。 這是一個矛盾,因此最初的陳述是正確的。

暫無
暫無

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

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