我有两个函数,f(n)= log 2 n和g(n)= log 10 n。我试图决定f(n)是O(g(n)),还是Ω(g(n))或Θ(g(n))。我认为我应该采用极限f(n)/ g(n),因为n变为无穷大,我认为极限是常数,所以f(n)必须是Θ(n)。
我是对的吗?
答案 0 :(得分:4)
log 2 n = log 10 n / log 10 2(来自here)
所以f(n)= g(n)/ log 10 2
因此f(n)和g(n)仅因常数因子而不同(因为log 10 2是常数)。
所以,从the definitions of O(x), Ω(x) and Θ(x)开始,我会说:
f(n)∈O(g(n)),
f(n)∈Ω(g(n)),
f(n)∈Θ(g(n))
答案 1 :(得分:2)
是的,你是对的。从复杂性的角度来看(至少是大O的观点)如果是log 2 或log 10 并不重要。
f(n)都是O(g(n)),f(n)是Ω(g(n)),f(n)是Θ(g(n))
答案 2 :(得分:1)
由于限制是常数,你是正确的f(n)∈Θ(g(n))(假设你在问题中有一个拼写错误)。当然还有g(n)∈Θ(f(n))。
BTW:不仅比率的限制是常数,而且log 2 n / log 10 n总是一个常数(log 2 10)。