Is 2(n+1) = O(2n)?
我认为这是正确的,因为n+1 ~= n
。
Is 2(2n) = O(2n)?
这个似乎会使用相同的逻辑,但我不确定。
答案 0 :(得分:10)
第一种情况显然是正确的 - 你只需要取消常数
当前对问题第二部分的回答,看起来像是对我的一种嘲讽,所以我会尝试给出正确的数学解释。让我们假设第二部分是真的,那么从big-O的定义来看,你有:
这显然是错误的,因为没有这样的常数可以满足这种不平等。
答案 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)
矛盾证明:
因此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
答案 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)的增长率