我今天刚刚了解到这种关系不成立,因为日志会改变函数的行为。但这是真的吗?一个例子就是好的。
如果f(n)=Θ(g(n)),log(f(n))=Θ(log(g(n))是否成立?
感谢任何帮助。提前谢谢。
答案 0 :(得分:1)
现在评论已经表明这个问题是关于渐近限制而不是算法复杂性......
您可以使用L'Hôpital的规则(信息在差分微积分的任何基本文本中)以及ln(x)
(自然对数)的导数为1/x
以显示渐近极限的事实f(n)/g(n)
等于log(f(n))/log(g(n))
的渐近限制。
请注意,这与算法复杂性几乎没有任何关系。
答案 1 :(得分:-1)
上一个答案不正确。例如,
设 f(n)=a
和 g(n)=1
,其中 a
是对数的底。然后 f(n)
在 O(g(n))
中。实际上,f(n)<=cg(n)
代表所有 n>0
,其中 c=a
。但是,log(f(n))=1
和 log(g(n))=0
。现在 1
不在 O(0)
中。实际上,不存在常量 C
和 N
使得 1=log(f(n))<=Clog(g(n))=0
对所有 n>N
都存在。
然而,假设 log(g(n))>0
。由于 f(n)
在 O(g(n))
中,我们有常量 A
和 N
,使得 f(n)<=Ag(n)
用于所有 n>=N
。现在将 log
应用到两边,注意这个函数是单调得到 log(f(n))<=log(Ag(n))=log(A)+log(g(n))
。由于 log(g(n))>0
存在 B
使得 log((g(n))^B)=Blog(g(n))>=log(A)
。因此,对于所有 log(f(n))<=log(A)+log(g(n))<=Blog(g(n))+log(g(n))=(B+1)(g(n))
,n>= N
。因此,f(n)
在 O(g(n))
中。