Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.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
Algorithm 改良复合体_Algorithm_Big O - Fatal编程技术网

Algorithm 改良复合体

Algorithm 改良复合体,algorithm,big-o,Algorithm,Big O,我有点困惑。如果我必须证明 现在,在这里,如果我计算极限 通过这个,我可以说这确实属于big-o(4n)。 是 这对于n的任何值都是不正确的。 这是证明的正确方法吗?根据定义,如果存在一个c常数,而该常数保持f(n),则不存在最佳常数。正如您所观察到的,2不起作用。然而,对于每一个epsilon>0,常量2+epsilon将起作用。这通常可以通过扩展极限的定义来证明。当n趋于无穷大时,f(n)/g(n)的极限接近c的条件是,对于每个epsilon>0,都存在n0,因此,对于所有n>n0,我们都有

我有点困惑。如果我必须证明

现在,在这里,如果我计算极限

通过这个,我可以说这确实属于big-o(4n)。 是 这对于n的任何值都是不正确的。
这是证明的正确方法吗?

根据定义,如果存在一个
c
常数,而该常数保持
f(n),则不存在最佳常数。正如您所观察到的,
2
不起作用。然而,对于每一个
epsilon>0
,常量
2+epsilon
将起作用。这通常可以通过扩展极限的定义来证明。当
n
趋于无穷大时,
f(n)/g(n)
的极限接近
c
的条件是,对于每个
epsilon>0
,都存在
n0
,因此,对于所有
n>n0
,我们都有
|f(n)/g(n)-c
,这意味着
f(n)/g(n)f(n)<(c+epsilon)g(n)
。因此,
f(n)
O(g(n))
,大O常数
c+epsilon
常数不影响
O
时间复杂度

我的意思是
O(2*n)=2*O(n)=O(n)

如果
2n+1
处于
O(4n)
=>
2n+1
处于
O(n)


因为
lim(n->infinite)(2n+1)/n=2
是一个有限数=>
2n+1
位于
O(n)

假设我被要求证明这个关系。现在,我从去掉限制开始。极限给出的答案不满足关系式。那我怎么写呢?我写了吗,因为它会满足其他值,所以,这个关系是真的?因为有一个常数满足这个关系。它不需要保持任何常数,只要存在一个常数就足够了。在这种情况下,
(1/10)*n收到了,谢谢。那么,我为什么要取消限制呢?我不能直接用上面的方法,即不等式方法吗?这里很容易看出
1*(2n+1)得到了它。但是,我有一点怀疑。假设我被要求证明这一点。我该怎么写呢?我计算不等式。这不令人满意。那么,我写你上面写的论点,还是我可以写,对于大o表示法,常数的,值应该在[0,inf)之间,因此,它是一个真实的关系?@Qin只需要选择一个更大的常数。为了说明
f(n)
o(g(n))
,对于所有足够大的
n
,我都需要显示
f(n)这就是我要显示它属于O(n)?没有不平等的东西吗?如果限制
f(n)/g(n)
是有限的(
2n+1/n
)=>
f(n)
O(n)中(
2n+1
)。这种方法只是包含
c
的定义的另一种形式。在此之后,我不必通过使用c的值来找出n0的值吗?是的,如果你使用这种方法,你不需要另一种方法。如果你从数学角度考虑,它们是等价的。