Big o 大O符号解释/证明
在确定一个函数是否是另一个函数的大o时,我仍然难以理解更复杂的证明,例如(f(n)=o(g(n)) 例如:Big o 大O符号解释/证明,big-o,Big O,在确定一个函数是否是另一个函数的大o时,我仍然难以理解更复杂的证明,例如(f(n)=o(g(n)) 例如: 我意识到,在条件下,我们希望证明得到满足,S.T.F(n)b。我看了无数的教程,不能理解这个概念。在下面的例子中,我将如何选择常数并使用这些信息来完成证明?谢谢。 < P>你只需要考虑 f(n)的大项。和g(n)当n转到无穷大时 现在考虑 f(n)< /代码>: 和g(n): 现在得出结论: 我认为这个问题实际上有两个部分。第一部分是确定哪个函数(如果有)具有更大的渐近增长。第二部
我意识到,在条件下,我们希望证明得到满足,S.T.F(n)b。我看了无数的教程,不能理解这个概念。在下面的例子中,我将如何选择常数并使用这些信息来完成证明?谢谢。
< P>你只需要考虑<代码> f(n)的大项。和g(n)
当n
转到无穷大时
现在考虑<代码> f(n)< /代码>:
和g(n)
:
现在得出结论:
我认为这个问题实际上有两个部分。第一部分是确定哪个函数(如果有)具有更大的渐近增长。第二部分是证明你所确定的是正确的
对于第一部分,我建议只看序列中的最高功率项。f和g的阶数均为2.5(分别为5n^2*sqrt(n)和6n^2*sqrt(n).在去掉系数后,哪个系数随着n趋于无穷大而增长得更快?事实证明,去掉系数会得到相同的精确函数(即n^2*sqrt(n)),因此函数具有相等的渐近增长。这意味着我们可以证明f=O(g)和g=O(f)
为了证明第一个,我们只需要找到一些C和k,对于所有的n>k,我们有C*g(n)>f(n)。我认为最简单的方法之一是通过矛盾证明。也就是说,假设对于所有的C和k,f(n)>C*g(n)对于所有的n>k。那么,在减少表达式之后,我们可以选择C和k的大值来证明这个假设是错误的。前面的回答者说答案是O(g(n))和O(f(n))。这将证明函数是函数的大θ,对吗?当然,这将表明f=θ(g)反之亦然。为了证明这一点,你必须证明f=O(g)和f=Omega(g),反之亦然。看。因为它们的度数相同,这可以被认为是一个大的θ吗?不完全需要,但注意n^2*sqrt(n)=n^2.5
。