所以我从little o page获取的是当你应用小O符号时我们必须检查一个速率是否比另一个速率快(小o聚焦于上限)?
在这种情况下,当我们申请小o:
2 ^ n = o(3 ^ n)将为假,因为2 ^ n和3 ^ n上限速度相等但不小于
2n = o(n ^ 2)为真,因为n ^ 2上限为2且2n没有上限。
我是在正确的轨道上吗?
答案 0 :(得分:3)
id: '345678',
name: 'John McClane',
blocked: [{
user: '123214',
time: 88273626362
},{
user: '345654',
time: 88273698678
},{
user: '554568',
time: 88273658858
}],
created: 127381283
位于blocked
(小o),因为:
2^n
Simmilarly。对于o(3^n)
,很容易证明它在lim_n->infinity (2^n / 3^n) = 0
直观的"小o"是 - 它是一个上限,但不是一个紧。这意味着,如果f(n)在2n
中,而o(n^2)
中没有,则函数f(n)
位于o(g(n))
。
在您的示例中,O(g(n))
位于Omega(g(n))
,但它不在2^n
中,因此我们可以说它位于O(3^n)
答案 1 :(得分:1)
大O和小O之间的唯一区别是大O允许函数以相等相位增长但是小O表示g(x)具有更高的增长率并且在特定点x之后永远不能相等'(考虑f(x)= o(g(x)))
您提供的第一个示例是错误的,因为小O表示: 对于f(x)= o(g(x)) | F(X)| X'
然而在上述情况下,f(x)= 2 ^ x且g(x)= 3 ^ x,不存在C和x'来满足它 因为g(x)具有较高的增长率。 p>
如果了解Big O,定义小O的最佳方法是:
如果函数是Big O而不是Big Omega,则该函数称为小O. - 这是因为大的欧米茄和大的O只在两个函数s的groth速率相等的条件下交叉,所以如果我们删除那个特定的情况它是小O.
但是请记住,如果f(x)是Big O g(x),它也可以是g(x)的小O,但反之亦然。