如果f(n)是欧米茄(g(n))则则2 ^(f(n))是欧米茄(2 ^ g(n))。这是对还是错

时间:2017-10-16 19:59:07

标签: algorithm big-o asymptotic-complexity

对于这个问题,我认为这是真的,因为我认为问题基本上是要求f(n)大于或等于g(n)然后大于或等于2^(f(n))2^(g(n))

因此,如果我们采用f(n) = 2ng(n) = n的实例,则f(n)> g(n)。然后2^2n大于2^n

但我的朋友说不正确,有人可以给我一些见解吗?我想我可能会对这个问题有一些误解。

3 个答案:

答案 0 :(得分:2)

您有兴趣证明或驳斥此声明:

  

如果f(n)=Ω(g(n)),那么2 f(n) =Ω(2 g(n))。

当你看到这样的陈述时,澄清f和g在这里通常会有所帮助。具体而言,上述陈述实际上意味着以下内容:

  

对于任何函数f和g ,如果f(n)=Ω(g(n)),那么2 f(n) =Ω(2 G(N)

所以从这个意义上讲,如果你想证明这个陈述是真的,你需要通过显示这个陈述是真的来接近它,以便任何可能选择的f和g ,而不是只需选择单个f和单个函数g并确认这些特定函数的关系成立即可。从这个意义上说,你的朋友是对的。

(另一方面,如果你想反驳这个主张,你只需要给出函数f和g的例子,其中f(n)=Ω(g(n))但是2 f(n)≠Ω(2 g(n))。)

作为这个问题的提示:像O,Ω和Θ这样的渐近符号都完全忽略了常数因子。如果f(n)=Ω(g(n)),那么你可以用你想要的任何常数因子来缩放f或g,并且这种关系仍然可以保持。另一方面,指数中的常数因子从根本上改变了该指数的性质。例如,函数e n 比函数e 2n 指数地增长,因为e 2n =(e 2 n ,这是一个具有更高基数的指数函数。换句话说,如果不完全改变其增长率,就不能用一个常数因子来扩展指数。

基于这种断开 - Ω符号不能区分由常数因子而不同的函数,但指数函数对常数因子非常敏感 - 你认为这个陈述是真还是假?根据上面的建议,你会如何证明这样的陈述?

答案 1 :(得分:1)

  

对于这个问题,我认为这是真的,因为我认为问题基本上是要求f(n)大于或等于g(n)然后2^(f(n))大于或等于{{1} }}

不。那不是大欧米加符号的含义。 2^(g(n))表示对于足够大的f(n) = Ω(g(n))n的比率低于正常数。

要查看f(n)/g(n)并非暗示f(n) = Ω(g(n)),请考虑2^f(n) = Ω(2^g(n))f(n) = n - log(n)。然后是g(n) = n2^f(n) = (2^n)/n以及2^g(n) = 2^n

答案 2 :(得分:0)

要回答您的问题,该声明是正确的。

我们可以找到符合大欧米茄定义的常数。具体来说,让C_2 = 2 ^ C_1,让n> = max(n_1,n_2)。

Proof