g(n)∈O(f(n))是否意味着f(n)∈Ω(g(n))?

时间:2016-04-28 00:26:10

标签: time-complexity complexity-theory asymptotic-complexity

我只想了解Big O和Big Omega的工作原理。我知道Big O意味着没有比这更好,而Big Omega意味着没有比运行时更糟糕的了。所以如果我有一个函数 g n ),那么 g n )= O < / em>( f n ))那么我可以说 f n )=Ω(< EM>克名词))?

1 个答案:

答案 0 :(得分:2)

符号方式,最好写 g (n)∈ O f n )),因为“ O f n ))”可以看作是所有函数的 set 增长速度不超过 f n )的倍数。

让我们重申复杂性理论中使用的两个相关的形式定义:

  • g (n)∈ O f n ))⇔∃ k < / em>&gt; 0∃ N ≥0∀ n N [| g n )| ≤ k ·| f n )|]
  • f (n)∈Ω g n ))⇔∃ k < / em>&gt; 0∃ N ≥0∀ n N [ f n < / em>)≥ k · g n )]

如果我们可以假设 f g 是非负函数(计算机科学中使用的函数几乎总是如此),那么我们可以放弃绝对值标志。因此:

  • g (n)∈ O f n ))⇔∃ k < / em>&gt; 0∃ N ≥0∀ n N [ g n < / em>)≤ k · f n )]
  • f (n)∈Ω g n ))⇔∃ k < / em>&gt; 0∃ N ≥0∀ n N [ f n < / em>)≥ k · g n )]

接下来,翻转第二个逻辑语句中的不等式:

  • g (n)∈ O f n ))⇔∃ k < / em>&gt; 0∃ N ≥0∀ n N [ g n < / em>)≤ k · f n )]
  • f (n)∈Ω g n ))⇔∃ k < / em>&gt; 0∃ N ≥0∀ n N [ k · g < / em>( n )≤ f n )]

现在让我们证明第一个陈述的右边隐含第二个陈述的右边:

  1. 假设∃ k &gt; 0∃ N ≥0∀ n N [ g n )≤ k · f n )]为真。
  2. 实例化 k &gt; 0,满足∃ N ≥0∀ n N [ g n )≤ k · f n )]。
  3. k '= 1 / k ,这是合法的,因为 k ≠0。
  4. 实例化 N ≥0满足∀ n N [ g n < / em>)≤ k · f n )]。
  5. n 为任意数字,使 n N
  6. 然后我们 g n )≤ k · f n )。
  7. 接下来我们 g n )/ k f n )。
  8. 通过替换,我们有 k ' g n )≤ f n )。
  9. 因为 n 是任意的,我们推导出∀ n N [ k g n )≤ f n )]。
  10. 我们得出满足∀ n N [ k ' N ≥0 > g n )≤ f n )]。
  11. 我们推导出∃ k'&gt; 0∃ N ≥0∀ n N [ k ' g n )≤ f n )]。
  12. 我们将 k'重命名为 k ,以便∃ k &gt; 0∃ N ≥0∀< em> n ≥ N [ k · g n )≤ f < / em>的(名词的)。
  13. 因此[∃ k > 0∃ N ≥0∀ n N [ g n )≤ k · f n )]]暗示[∃ k &gt;0∃ N ≥0∀ n N [ k · g n )≤ f n )]]。
  14. 因此 g (n)∈ O f n ))暗示 f < / em>(n)∈Ω g n )),如所需。