< = vs<在证明大字符时

时间:2011-02-02 15:24:46

标签: math big-o asymptotic-complexity

我们刚开始在课堂上学习大班。我理解f(x)是g(x)的大-o的一般概念,如果存在两个常数c,k,则对于所有x> k | f(x)|< = c | g(x)| 。我有一个问题是,是否要求我们包括< =签名或者是否足以放入<登录?

例如: 假设f(x)= 17x + 11,我们要证明这是O(x ^ 2)。 然后,如果我们取c = 28且x> k = 1,我们知道17x + 11 <= 28x ^ 2。因此我们知道x总是大于1,这意味着28x ^ 2总是大于17x + 11。那么,我们是否真的需要包含等号(&lt; =)或者如果我们只写(&lt;)就可以了?

提前致谢。

5 个答案:

答案 0 :(得分:2)

来自| f x )| ≤ c | g x )|对于某些实值 c ,它遵循| f x )| &LT; ( c + e )| g x )|对于所有 e &gt; 0

由此可见 c' =( c + e ),以便| f X )| &LT; c' | g x )|,因此您可以使用&lt;而不是≤。

更实际的是,如果你能证明| f x )| &LT; c | g x )|,≤部分非常简单。

答案 1 :(得分:0)

如果您显示x&lt;那么你也表现出x&lt; = y。所以没有区别。

答案 2 :(得分:0)

  

是否要求我们包括&lt; =符号或者是否仅仅将&lt; =登录?

我想这里有两个略有不同的东西,我想:

  • 如果您可以为所有c k演示x > k|f(x)| <= c|g(x)|,那么您还可以 展示ck,适用于所有x > k |f(x)| < c|g(x)|。因此显示< 足够 ,但是:

  • 如您所述,能够说f(x) = O(g(x))的实际要求是找到ck,以便x > k { {1}}。如果我们能做的最好的事情是找到|f(x)| <= c|g(x)|c,那么对于所有k x > k,我们都没有达到您的|f(x)| = c|g(x)|条件,但是我们已经做足以显示<。因此显示f(x) = O(g(x))不是必要

答案 3 :(得分:0)

您无法替换&lt; = with&lt;在定义中。

任何通常为零的函数f都是O(f),但是如果用&lt; =替换&lt;。

例如,如果x是奇数,则设f(x)= x,如果x是偶数,则设为0。那么f是O(f),因为对于所有x,f(x)<= f(x)。然而,没有c使得f(x)<1。 cf(x)表示所有大x,因为对于所有偶数x,双方都是0。

答案 4 :(得分:0)

使用<代替 确定,但很明显它们在某些情况下是相同的,因为是Big-O表示法定义的一部分。

另一方面,定义:0 ≤ f(n) < cg(n)属于另一个类(Little-o表示法),它包含在Big-O类中