是2 ^(2n)= O(2 ^ n)

时间:2011-01-31 21:07:33

标签: math big-o

Is 2(n+1) = O(2n)?

我认为这是正确的,因为n+1 ~= n


Is 2(2n) = O(2n)?

这个似乎会使用相同的逻辑,但我不确定。

7 个答案:

答案 0 :(得分:10)

第一种情况显然是正确的 - 你只需要取消常数

当前对问题第二部分的回答,看起来像是对我的一种嘲讽,所以我会尝试给出正确的数学解释。让我们假设第二部分是真的,那么从big-O的定义来看,你有:

enter image description here

这显然是错误的,因为没有这样的常数可以满足这种不平等。

答案 1 :(得分:4)

请注意

2n+1 = 2(2n)
22n = (2n)2

从那里,使用您知道的Big-O表示法规则,或者使用定义。

答案 2 :(得分:4)

我假设你刚刚离开左侧的O()表示法。

O(2 ^(n + 1))与O(2 * 2 ^ n)相同,并且总是可以拉出常数因子,因此它与O(2 ^ n)相同。

然而,恒定因素是你唯一可以拿出的东西。 2 ^(2n)可以表示为(2 ^ n)(2 ^ n),并且2 ^ n不是常数。所以,你的问题的答案是肯定的,不是。

答案 3 :(得分:4)

声明:2 ^(2n)!= O(2 ^ n)

矛盾证明:

  1. 假设:2 ^(2n)= O(2 ^ n)
  2. 这意味着存在c> 0和n_0 s.t.对于所有n> = n_0
  3. ,2 ^(2n)< = c * 2 ^ n
  4. 将两边除以2 ^ n,得到:2 ^ n< = c * 1
  5. 矛盾! 2 ^ n不受常数c的限制。
  6. 因此2 ^(2n)!= O(2 ^ n)

答案 4 :(得分:2)

要回答这些问题,您必须注意big-O表示法的定义。所以你必须问:

是否有任何常数C使得2^(n+1) <= C(2^n)(假设n足够大)?

另一个例子也是如此:是否有任何常数C使得所有n的2^(2n) <= C(2^n)足够大?

处理这些不平等现象,您将会找到解决方案。

答案 5 :(得分:1)

2 n + 1 = O(2 n ,因为2 n + 1 = 2 1 * 2 n = O(2 n )。 假设2 2n = O(2 n )然后存在一个常数c,使得对于n超过某个n 0 的情况,2 2n <= c 2 n 。将双方除以2 n ,我们得到2 n 0 的值可以使它成立,因此假设为假,并且2 2n != O(2 n

答案 6 :(得分:-1)

我们将使用=> a^(m*n) = (a^m)^n = (a^n)^m 现在,

2 ^(2 * n)=(2 ^ n)^ 2 =(2 ^ 2)^ n

所以

(2 ^ 2)^ n =(4)^ n

因此

O(4 ^ n)

很明显,

(2 ^ n)<(4 ^ n)的增长率