如何用Big O表示法表达2(3(logn-1))
?
是2n
还是2log n
?
答案 0 :(得分:2)
这是对数基础重要的一种情况。所以,比方说,对数的基础是a
。您可以通过
logan = log₃n / log₃a
现在你可以简化指数
3logan - 1 = 3log₃n / log₃a - 1 = n1/log₃a / 3
所以你总得到
2n1/log₃a / 3 = 2n1/log₃a / 3 ⋅ 21/3 ∈ O(2n1/log₃a)
如果a = 3
的复杂性为O(2ⁿ)
。如果a = 2
,复杂度为O(2nc)
,其中为
c = 1/log₃2 ≈ 1.5850
。
注意:2nc = 2(nc) ≠ (2n)c = 2cn
。所以你不能更多地简化复杂性。