证明2 ^(n a)= O(2 ^ n)?

时间:2012-11-16 19:25:21

标签: algorithm complexity-theory

如何证明2 ^(n + a)是O(2 ^ n)?我唯一能想到的是2 ^ n中的n是任意值,因此n + a同样是任意的,所以n + a = n。或者,2 ^(n + a)= 2 ^ n * 2 ^ a。 2 ^ n显然是O(2 ^ n),并且a在2 ^ a中作为任意值存在,因此2 ^ a = 2 ^ n = O(2 ^ n)。是否有更清晰/更正式的方式来证明这一点?

3 个答案:

答案 0 :(得分:3)

对于big-O的形式定义,必须存在M和n0,使得所有n的2 ^(n + a)<= M * 2 ^ n> N0。

如果我们选择M = 2 ^ a,并且n0 = 0,那么我们可以看到2 ^(n + a)= 2 ^ a * 2 ^ n = M * 2 ^ n,其是&lt; = M * 2 ^ n表示所有n> N0。因此,2 ^(n + a)是O(2 ^ n)

答案 1 :(得分:1)

请参阅big-O表示法here的定义。考虑一下是否可以在定义中找到常量M

答案 2 :(得分:0)

通常,要证明f(n)O(g(n)),您必须找到一个正整数N,以便对所有n >= Nf(n) <= g(n)