繁体   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