Algorithm 大Oh,小Oh和大θ的关系
如果一个函数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)),有可能吗Algorithm 大Oh,小Oh和大θ的关系,algorithm,math,asymptotic-complexity,calculus,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)),有可能吗 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)) <=> e
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))
这必须适用于任何c>0
选项。关于c
我们所知道的只是一个存在;但是只要f(n)
和g(n)
严格大于零,我们就知道一定有一个最小的c
起作用。让c'
成为c
在k'
的最小有效选择。然后我们可以选择c'=1/c'
。因此,我们需要
0 < g(k'') < g(k'')
0
这总是错误的。因此,只要f(n)
和g(n)
不(最终)等于零,我们就不能同时拥有f(n)=o(g(n))
和f(n)=Ω(g(n))
由于
f(n)=ω(g(n))
意味着f(n)=Ω(g(n))
,根据我们的假设,我们知道后者不是真的,那么我们也可以安全地回答问题2的否定。我们给出了一些正式的定义:
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))
这必须适用于任何c>0
选项。关于c
我们所知道的只是一个存在;但是只要f(n)
和g(n)
严格大于零,我们就知道一定有一个最小的c
起作用。让c'
成为c
在k'
的最小有效选择。然后我们可以选择c'=1/c'
。因此,我们需要
0 < g(k'') < g(k'')
0
这总是错误的。因此,只要f(n)
和g(n)
不(最终)等于零,我们就不能同时拥有f(n)=o(g(n))
和f(n)=Ω(g(n))
既然
f(n)=ω(g(n))
意味着f(n)=Ω(g(n))
,根据我们的假设,我们知道后者不是真的,那么我们也可以安全地回答问题2的否定。这与编程有什么关系?也许可以试试数学堆栈交换站点这是如何编程的?也许可以试试数学堆栈交换站点