Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Big o 大O符号解释/证明_Big O - Fatal编程技术网

Big o 大O符号解释/证明

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): 现在得出结论: 我认为这个问题实际上有两个部分。第一部分是确定哪个函数(如果有)具有更大的渐近增长。第二部

在确定一个函数是否是另一个函数的大o时,我仍然难以理解更复杂的证明,例如(f(n)=o(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