用大 O 符号比较 2 个函数
comparing 2 functions with big O notation
问题是:
假设 f, g: N → N 是满足 f(n)=O(logn) 和 g(n) = Ω(nlogn) 的函数。
f(n) = Ω(g(n)) 是否可能?
我认为这是不可能的,因为 nlogn > logn,不确定这是不是真的,也不知道如何证明。
提前致谢!
不,这不可能。
让我们假设这是可能的:
g(n) = Ω(nlogn)
==> 有 a
这样 g(n) > anlogn
对于足够大的 n
.
f(n) = Ω(g(n))
==> 有 b
这样 f(n) > bg(n) > banlogn
对于足够大的 n
.
- 让
c = ab
==> f(n) > cnlogn
足够大 n
==> f(n) = Ω(nlogn)
.
f(n) = O(logn)
==> 有 d
这样 f(n) < dlogn
对于足够大的 n
.
- ==>
cnlogn < f(n) < dlogn
==> cnlogn < dlogn
==> n < d/c
。这是不可能的,因为存在大于 d/c
的自然数 n
。 ==> 与最初的假设相矛盾。
问题是:
假设 f, g: N → N 是满足 f(n)=O(logn) 和 g(n) = Ω(nlogn) 的函数。 f(n) = Ω(g(n)) 是否可能?
我认为这是不可能的,因为 nlogn > logn,不确定这是不是真的,也不知道如何证明。
提前致谢!
不,这不可能。
让我们假设这是可能的:
g(n) = Ω(nlogn)
==> 有a
这样g(n) > anlogn
对于足够大的n
.f(n) = Ω(g(n))
==> 有b
这样f(n) > bg(n) > banlogn
对于足够大的n
.- 让
c = ab
==>f(n) > cnlogn
足够大n
==>f(n) = Ω(nlogn)
. f(n) = O(logn)
==> 有d
这样f(n) < dlogn
对于足够大的n
.- ==>
cnlogn < f(n) < dlogn
==>cnlogn < dlogn
==>n < d/c
。这是不可能的,因为存在大于d/c
的自然数n
。 ==> 与最初的假设相矛盾。