大哦,小哦和大theta的关系

时间:2016-09-20 19:50:16

标签: algorithm math asymptotic-complexity calculus

如果函数f(x)= O(g(x)),那么f(x)=Ω(g(x))和f(x)=Θ(g(x))的可能性,但如果f(x)= o(g(x)),有可能f(x)=Ω(g(x)),或f(x)=ω(g(x))?

1 个答案:

答案 0 :(得分:0)

我们给出了一些正式的定义:

f(n) = o(g(n))
<=> forall c > 0 exists k > 0 s.t. 0 <= f(n) < cg(n) forall n >= k.
<=> g(n) = ω(f(n))

f(n) = O(g(n))
<=> exists c > 0 exists k > 0 s.t. 0 <= f(n) < cg(n) forall n >= k.
<=> g(n) = Ω(f(n))

f(n) = ϴ(g(n))
<=> f(n) = O(g(n)) and g(n) = O(f(n))

假设f(n) = o(g(n))。问题1:可以f(n) = Ω(g(n))吗?如果是这样,则必须存在c, k,以便对所有n >= k0 <= g(n) < cf(n)。根据我们的假设,我们知道对于所有c',存在一些k',以便对所有n >= k'0 <= f(n) < cg(n)。让k'' = max(k, k')。我们必须:

0 <= g(k'') < cf(k'')
0 <= f(k'') < c'g(k'')
=> 0 <= g(k'') < cc'g(k'')

这必须适用于c' > 0的任何选择。我们所知道的c就是存在的;但只要f(n)g(n)严格大于零,我们就知道必须有一些最小的c才有效。让c''成为c k''的最小有效选择。然后我们可以选择c' = 1/c''。因此我们需要

0 < g(k'') < g(k'')

总是假的。因此,只要f(n)g(n)没有(最终)等于零,我们就无法同时拥有f(n) = o(g(n))f(n) = Ω(g(n))

由于f(n) = ω(g(n))暗示f(n) = Ω(g(n)),并且根据我们的假设我们知道后者不是真的,那么我们也可以安全地回答问题2中的否定。