如何证明 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)。是否有更清晰/更正式的方式来证明这一点?
问问题
130 次
3 回答
3
对于 big-O 的正式定义,必须存在一个 M 和 n0 使得 2^(n+a) <= M*2^n 对于所有 n > n0。
如果我们选择 M = 2^a,并且 n0 = 0,那么我们可以看到 2^(n+a) = 2^a * 2^n = M*2^n,即 <= M*2^n对于所有 n > n0。因此,2^(n+a) 是 O(2^n)
于 2012-11-16T19:29:15.063 回答
1
请参阅此处的大 O 表示法的定义。想想你是否能找到M
定义中的常量。
于 2012-11-16T19:28:29.950 回答
0
一般来说,要证明f(n)
是O(g(n))
,您必须找到一个正整数N
,使得对于所有n >= N
,f(n) <= g(n)
。
于 2012-11-16T19:29:02.800 回答