以增加Θ顺序排列以下表达式。如果两个函数具有相同的增长顺序,则应说明这一事实。
n log n,n -1 ,log n,n log n ,10n + n 3/2 ,π n ,2 n ,2 log n ,2 2 log n ,log n!< / p>
有人可以向我解释为什么以下答案是正确的吗?
n -1 «log n«2 log n «n log n = log n! «10n + n 3/2 «n log n «2 n = 2 2 log n «π n
答案 0 :(得分:6)
你应该使用以下事实:
lim(n->∞) f(n)/ g(n) = 0 this gives you Θ(f(n)) < Θ(g(n))
lim(n->∞) f(n)/ g(n) = c; c > 0 this gives you Θ(f(n)) = Θ(g(n))
lim(n->∞) f(n)/ g(n) = ∞ this gives you Θ(f(n)) > Θ(g(n))
现在使用你得到:
lim(n->∞) n^−1 / log n = lim(n->∞) 1 / (n * log n) = 0.
这会立即为您提供Θ(n^−1) < Θ(log n)
继续剩下的。
对于某些计算,您可能会发现L'Hôpital's rule有帮助。
答案 1 :(得分:2)
所以自从我考虑这些概念已经有很长时间了(如果这是错误的话,我相信其他人会纠正我),但我不同意你的回答。首先关闭theta意味着该函数在上方和下方绑定。这意味着10n + n3 / 2,2n和πn都是相同的theta类。 log n,2log n,22log n也都是同一个类。要查看n log n与log n是同一个类!使用stirling's approximation。因此,你得到:
log n = 2 log n = 22 log n ≪ n−1 = 10n + n3/2 = 2n = πn ≪ n log n = log n!
现在,如果'n3 / 2'表示n ^(3/2)而不是3/2 * n,则顺序为:
log n = 2 log n = 22 log n ≪ n−1 = 2n = πn ≪ n log n = log n! ≪ 10n + n3/2