我正在修改考试,我在互联网上发现了这个问题,并想知道如何解决这个问题。
(基地2日志)
证明log(2n )是O(log n )的成员。
我已经试了一下,但我不确定我是否正确,因为没有提供答案。能否请你帮忙?
这是我的尝试:
log 2 n - c log n ≤0
log 2 + log n - c log n ≤0
1 +(1- c )log n ≤0
(然后我除以log n 。)
示例: n = 8且 c = 10评估为小于零。因此它 true 。
我的问题是:
我这样做了吗?
我的答案可以进一步简化吗?
答案 0 :(得分:7)
lg(2n) = lg(2) + lg(n).
lg(2)是一个常数。见维基百科,Logarithmic identities。
答案 1 :(得分:4)
答案很长
log(2n) log(2) + log(n) log(2)
lim n->infinity ------- = lim --------------- = lim ------ + 1 = 0 + 1 = 1
log(n) log(n) log(n)
因为限制中两个函数的比例存在(即有界),它们具有相同的渐近复杂度。
以同样的方式,为了证明O(n 2 )不是O(n),你会做
lim n->infinity (n^2 / n) = lim n which tends to infinity
为O(n)与O(log n)执行此操作需要更多工作,因为
lim n->infinity (n / log n)
需要以某种方式处理。诀窍是你可以使用衍生物,因为极限中的导数也需要渐近相关(否则它们的积分不是,即原始函数)。你得到n的导数,即1,和log n的导数,即n -1 ,之后
lim n->infinity (1 / (1 / n)) = lim n which tends to infinity