大 O 表示法示例混淆

Big O notation example confusion

这种情况下的问题是询问是否 22n = O(2n)?

现在我通常会求解 0 <= 22n <= c*2n 中的两个不等式。

0 <= 22n 是平凡的,然后我将另一个不等式重写为:

2n*2n <= c*2n, 和 2 n 抵消,留下 2n <= c。在我的所有其他示例中,我们必须让 c 成为我们分配给它的值,然后求解使它为真的 n 值。然而,在这种情况下,我们只得到 2n <= c,我真的不知道如何解释它。我的教授说这意味着它不是 O(2n) "because there is no constant c that will ensure this for any value n",但出于某种原因,我在概念上真的不理解。谁能更好地向我解释一下,或者换个说法?

大 O 表示法的基础是确定输入的大小(例如,数组中的元素数)将如何影响您需要执行的操作数。

在这些情况下,C 表示满足 n -> ∞ 时的不等式的常数,无论它有多大。这里,当n -> ∞时,显然是2^n -> ∞。因此,为了维持不平等,您需要 c -> ∞。 换句话说,由于没有常数 C 支持不等式,因此 2^2n != O(2n).