这种情况下的问题是询问2 2n = O(2 n )?
现在我通常在0< = 2 2n < = c * 2 n 中求解两个不等式。
0< = 2 2n 非常简单,然后我将其他不等式重写为:
2 n * 2 n < = c * 2 n ,2 n 取消留下我们2 n < = c。在我所拥有的每个其他示例中,我们必须让c为我们分配给它的值,然后求解使其成立的n的值。但是,在这种情况下,我们只得到2 n < = c,我真的不知道如何解释它。我的教授说这意味着它不是O(2 n )“因为没有常数c可以确保任何值n”,但由于某种原因我真的不理解这个概念。有人可以向我解释一下这个问题,或者重新说一下吗?
答案 0 :(得分:1)
big-O表示法的基础是确定输入的大小(例如,数组中元素的数量)将如何影响您需要执行的操作的数量。
在这些情况下,C
代表一个常数,无论多大,它都可以满足n -> ∞
时的不等式。在n -> ∞
时,显然是2^n -> ∞
。因此,为了维护不平等,您需要c -> ∞
。
换句话说,由于没有常数C
维持不平等,2^2n != O(2n)
。