【发布时间】:2012-09-11 01:12:02
【问题描述】:
在上一个问题中,我展示了(希望是正确的)f(n) = O(g(n)) 在充分条件下暗示lg(f(n)) = O(lg(g(n)))(例如,lg(g(n)) >= 1, f(n) >= 1 和足够大的 n)。
现在,我需要证明或反驳 f(n) = O(g(n)) 暗示 2^(f(n)) = O(2^g(n)))。直观地说,这是有道理的,所以我想我可以借助前面的定理来证明它。我注意到f(n) 可以重写为lg(2^f(n)) 而g(n) 只是lg(2^g(n)),这让我很兴奋......这是我想要证明的双方的对数基数2,它简化了很多事情!
但我很确定这行不通。仅仅因为lg(2^f(n)) = O(lg(2^g(n))) 并不一定意味着2^f(n) = O(2^g(n))...这与前面的定理相反(它说“暗示”,而不是“当且仅当”)。
我是否需要以另一种方式尝试这个证明,或者我可以真正放弃我所拥有的(至少作为初学者)?
**说到其他方式,也许我可以争论如何将 2 提高到“高于”f(n) 的某个 g(n) 仍然会保持更高?这几乎感觉像是一个常识性论点,但也许我错过了一些重要的东西..
**哦,哎呀!我忘了补充 f(n) 和 g(n) 是渐近正数。根据我们的教科书定义,这意味着它们“对于所有足够大的 n 都是正的”。
【问题讨论】: