Big o 无法理解教科书中的分词或大O示例

Big o 无法理解教科书中的分词或大O示例,big-o,logarithm,Big O,Logarithm,到目前为止,理解大O符号及其计算方法还可以……大多数情况都很容易理解。然而,我只是遇到了一个我一生都无法解决的问题 说明:为表达式选择最佳的大O符号 (n^2 + lg(n))(n-1) / (n + n^2) 答案是肯定的。这一切都很好,但考虑到分子中的n^3因子,这是如何合理化的呢?n^3不是最好的,但我认为fn非严格答案之间有一个最小的基础: 分布分子积,我们发现分子是n^3+n logn-n^2-logn。 我们注意到,对于大n,分子增长为n^3,对于大n,分母增长为n^2。 我们将其

到目前为止,理解大O符号及其计算方法还可以……大多数情况都很容易理解。然而,我只是遇到了一个我一生都无法解决的问题

说明:为表达式选择最佳的大O符号

(n^2 + lg(n))(n-1) / (n + n^2)
答案是肯定的。这一切都很好,但考虑到分子中的n^3因子,这是如何合理化的呢?n^3不是最好的,但我认为fn非严格答案之间有一个最小的基础:

分布分子积,我们发现分子是n^3+n logn-n^2-logn。 我们注意到,对于大n,分子增长为n^3,对于大n,分母增长为n^2。 我们将其解释为大n的增长为n^{3-2},或On。 非严格答案:

分布分子积,我们发现分子是n^3+n logn-n^2-logn。 我们注意到,对于大n,分子增长为n^3,对于大n,分母增长为n^2。 我们将其解释为大n的增长为n^{3-2},或On。
如果你把这个算法放到Wolfram Alpha中:

如果你展开它,你会得到一个三次函数除以一个二次函数。对于Big-O,常数无关紧要,功率越大越好,因此您的结果是:

接下来是数学归纳法。相对于越来越大的n值,整个算法以类似线性的方式增长。它不是很线性,所以我们不能说它有一个很大的ωn,但它确实相当合理地接近于On,因为摊销的恒定增长率

或者,你可以到处惹恼数学家说,因为这是基于大O规则,我们可以从分母中去掉n的因子,从而通过简单的除法得到on。然而,在我看来,这仍然是非常不重要的。
请记住,这是一个不太严格的解释,对你的班级来说可能不太令人满意,但这给了你一些关于其运行时的基于数学的观点。

如果你把这个算法放到Wolfram Alpha中,:

如果你展开它,你会得到一个三次函数除以一个二次函数。对于Big-O,常数无关紧要,功率越大越好,因此您的结果是:

接下来是数学归纳法。相对于越来越大的n值,整个算法以类似线性的方式增长。它不是很线性,所以我们不能说它有一个很大的ωn,但它确实相当合理地接近于On,因为摊销的恒定增长率

或者,你可以到处惹恼数学家说,因为这是基于大O规则,我们可以从分母中去掉n的因子,从而通过简单的除法得到on。然而,在我看来,这仍然是非常不重要的。
记住,这是一个不太严格的解释,对你的课堂来说可能不太令人满意,但这给了你一些关于它运行时的基于数学的观点。

哦,这太棒了。那么,这些类型的含义可以被提出吗?这非常有帮助。关于什么类型的代码导致lgn或lgn性能有什么想法吗?当您可以执行解决方案空间的递归拆分时,通常会出现对数复杂性。例如,二进制搜索是log_2n。好的,当我开始阅读那本大得惊人的算法介绍书时,我会记住这一点……希望未来!谢谢明亮的星星哦,太棒了。那么,这些类型的含义可以被提出吗?这非常有帮助。关于什么类型的代码导致lgn或lgn性能有什么想法吗?当您可以执行解决方案空间的递归拆分时,通常会出现对数复杂性。例如,二进制搜索是log_2n。好的,当我开始阅读那本大得惊人的算法介绍书时,我会记住这一点……希望未来!谢谢bright Star真棒,谢谢你的澄清。我假设,随着时间的推移,开发伟大的基于时间的程序变得更容易或更直观?我在自己的时间里处理CS领域的问题,只是读书和闲聊……独奏它让我更兴奋,对材料有了更深的理解。识别你编写的算法的运行时间是一项至关重要的技能,因为它通常意味着性能好的代码和性能差的代码之间的区别。随着时间的推移,它会变得更简单,因为它能够分析您的代码。很高兴知道,期待未来的事情。谢谢,真棒,谢谢你的澄清。我假设,随着时间的推移,开发伟大的基于时间的程序变得更容易或更直观?我在自己的时间里处理CS领域的问题,只是读书和闲聊……独奏它让我更兴奋,对材料有了更深的理解。识别你编写的算法的运行时间是一项至关重要的技能,因为它通常意味着性能好的代码和性能差的代码之间的区别。随着时间的推移,使用
能够分析你的代码。很高兴知道,期待未来。谢谢,Makoto