假定两个(正)非递减函数f和g使得f(n)= O(g(n))。 是2 ^ f(n)= O(2 ^ g(n))吗?
解决方案中有2种情况:
我在这里错过了重点吗?
谢谢。
答案 0 :(得分:1)
首先根据定义观察10n=O(n)
。如果您不清楚,请重新阅读big-O
表示法的定义。
但是,2^(10n)
不是O(2^n)
,因为这暗示着
2^(10n) <= C2^n
对于某个常数C
和n
的所有值都高于某个阈值N
。
要了解为什么这不是事实,请选择一些常量D
,例如C <= 2^D
(例如D = lgC
)。我们得到
2^(10n) <= C2^n <= (2^D)(2^n) = 2^(D+n)
这意味着
10n <= D + n
或
9n <= D
所有高于阈值n
的{{1}}的值。但这是不可能的,因为N
是常数,而D
是不受限制的。
最后,我们有一个断言9n
的反例,因此它通常不成立。