【问题标题】:Big-O; order of growth rates大O;增长率顺序
【发布时间】:2016-02-07 19:50:12
【问题描述】:

对以下函数的增长率排序: 10-5n, 102log n, 3n, n log n, 10-100n2 + 103n, nn

然后证明每个关系。例如:如果排序是 A


根据我所做的数学计算,我得出的结论是正确的顺序如下:

102log n -5n -100n2 + 103n n n

但是,我无法证明这一点。我计算出 log n 的增长率小于 n 的增长率,而 n 的增长率小于 n log n。而且我知道,就增长率而言,n2 小于 3n,即小于 nn。我应该如何证明这些关系?

【问题讨论】:

  • 这个更适合math.stackexchange.com
  • @MaximilianGerhardt 我觉得 big-o 和增长率是特定于编程的。这些标签甚至不存在于 math.stackexchange 中。我最初的想法是在那里发帖。然后在这个网站上找到了所有相关的问题,所以我在这里发布。

标签: time-complexity big-o


【解决方案1】:

这是处理 f(n) = O(g(n)) 当且仅当的事实的好地方

limn → ∞ f(n) / g(n) = L

对于 L 的某个值。例如,让我们看看 3n 与 nn。取比率的极限给出

limn → ∞ 3n / nn

= limn → ∞ (3 / n)n

= 0

所以 3n = o(nn)。您应该能够使用类似的技术来推理此处的所有其他数量。最棘手的是将日志项与其他项进行比较。为此,按照建议,使用 l'Hopital 规则。

【讨论】:

    【解决方案2】:

    如果排序是 A

    所以这只是一个证明链。对于您的订购,这确实是正确的,我们有:

    首先,我们将证明 A = O(B),所以在这种情况下

    根据@templatetypef 给出的Big-Oh 符号的定义,我们确实计算出 通过查看比率的限制

    其余的同理,现在去证明10^(-5)n = O(n log n)。最后,您将证明完整的排序关系。

    【讨论】:

    • 我猜我的困惑源于何处最终等于 0?
    • 当 n 趋于无穷大时,1/n 是 1 超过无限大的东西,这会变为 0(将其视为 1/10,然后是 1/1000,然后是 1/9999999999999,这一切变小并在 n 无穷大时收敛到零)。您应该被允许使用这个基本限制。 (lim n->infty 1/n = 0)。
    • 那么我在以下方面是否正确:10^(-5)n / nlogn = 10^(-5) / logn = 0
    • 是的,因为对于 n -> infty,日志 n 已经趋于无穷大,我们又遇到了情况 1 除以无穷大的东西。
    • 对 OP 使用诸如 O(10^(-5)n) 之类的符号可能具有欺骗性(那是渐近符号的学生?),即使这包含在他的问题中。虽然形式上是正确的,但10^(-5) 在这里只是一个常数,因此 OP 可能会首先说明 O(const*g(n)) 只是 O(g(n)) (可能使用 Bog-O 符号的正式定义)。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    • 2021-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多