我在研究Big O符号。我知道Big O表示为:
f(n)E O(g(n))或f(n)= O(g(n))
这意味着函数f(n)的增长率不大于g(n)。
现在让我说我有一个等式:
5n +2 E O(n)
通过上面的等式,不应该' n'等于g(n)和' 5n + 2'等于f(n)。 现在为n的任何值。 f(n)总是大于g(n)。那么在这种情况下Big O是如何真实的呢?
答案 0 :(得分:2)
你应该更详细地阅读Big Oh的概念。
关系
f(n) E O(g(n))
说
对于某些常数C
f(n) <= C * g(n)
在这种情况下,C是某个值,其中5n + 2总是小于Cn
如果你解决了它:
5n + 2 <= Cn
2 <= (C - 5)*n
由此可以很容易地发现,如果C = 6 然后对于n的任何值,你的等式总是成立!
希望这有帮助!
答案 1 :(得分:2)
这不是大O符号的正确定义。 If f(x) is O(g(x))
,那么必须存在一些常量C和N,以便:|f(x)| <= C |g(x)| for all x>N
。f(x) is O(g(n))
。因此,如果f(x)在某个x值N之后总是小于或等于某个常数* g(x),那么f(n)=5n+2 <= C*g(n)=10000n
。实际上,这意味着常数因素是无关紧要的,因为您可以选择C作为任何值。因此,对于您的示例f(n) is O(g(n))
,{{1}}。
答案 2 :(得分:0)
考虑Big-O表示法代表什么,你有声明
或者也是 5n +2 = O(n)
鉴于Big-O符号表示我们函数的上限,即为我们给定函数的可能结果建立上限,可以通过以下方式重新考虑问题:
5n +2&lt; = c * n,某些常数c
我们可以看到该陈述是正确的,因为有可能找到一个大于或等于我们函数的常量(使得该常量大小或我们需要的小)。
更一般地说,如果g(n)的度更大,我们可以说任何给定函数f(n)都属于O(g(n))等于或等于f(n)的度,即其术语中的最高等级。
形式上: 设f(n)= n ^ x; 设g(n)= n ^ y;所以x <= y
然后f(n)= O(g(n))。
同样适用于Big-Omega的另一种方式。 希望它适合你