大 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)
.
这种情况下的问题是询问是否 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)
.