对于所有 k,n^k 是否为 O(2^n)?
Does for all k, n^k is O(2^n)?
对于所有 k,n^k 是 O(2^n) 是真的吗?
其实我想知道这个上限是否正确。就像我们可以说 n^2 是 O(n^3) 因为 n^2 < c * n^3 是真的,其中 c 是一个常数。那么类似地,对于 k 的所有值,我可以说 n^k < c * 2^n 吗?
为了证明任何常量 k
总有一个常量 c
使得 n^k < c * 2^n
,考虑这个:(n+1)^k / n^k = ((n+1)/n)^k
。随着 n
的增加,(n+1)/n
趋于 1
,因此 ((n+1)/n)^k
趋于 1。这意味着值之间的相对增加随着 n
的增加而减少。
现在考虑 2^(n+1) / 2^n
。这分明是2
。因此,相对增加与 n
增加相同。因此,每个 k
都会有一个 c
,这样 n^k < c * 2^n
对于所有 k,n^k 是 O(2^n) 是真的吗?
其实我想知道这个上限是否正确。就像我们可以说 n^2 是 O(n^3) 因为 n^2 < c * n^3 是真的,其中 c 是一个常数。那么类似地,对于 k 的所有值,我可以说 n^k < c * 2^n 吗?
为了证明任何常量 k
总有一个常量 c
使得 n^k < c * 2^n
,考虑这个:(n+1)^k / n^k = ((n+1)/n)^k
。随着 n
的增加,(n+1)/n
趋于 1
,因此 ((n+1)/n)^k
趋于 1。这意味着值之间的相对增加随着 n
的增加而减少。
现在考虑 2^(n+1) / 2^n
。这分明是2
。因此,相对增加与 n
增加相同。因此,每个 k
都会有一个 c
,这样 n^k < c * 2^n