function - 这些函数中哪一个具有更高的无穷大?
问题描述
我想比较两个给定函数的渐近递增,看看它们中的哪一个有更高的递增。
给定函数f(n) = n*ln(n)
和g(n)= $e^log_2(n)$
,我的解决方案如下图所示:
结果是,n*ln(n)
速度更快。看图表,我不相信。谁能告诉我如何解决这个问题?
解决方案
你的图表说的是实话,g(n)
增长速度比f(n)
. 原因如下:
关键方程如下
log_a(x) = log_b(x)/log_b(a) (*)
这很容易通过定义证明,因为
b^{log_a(x)log_b(a)} = (b^{log_b(a)})^{log_a(x)} ; t^{sr} = (t^s)^r
= a^{log_a(x)} ; b^{log_b(a)}=a
= x.
(证明是完整的,但你可以采取log_b
双方进一步说服自己)
现在我们可以使用 (*) 来处理我们的特殊情况:
log_2(n) = log_e(n)/log_e(2) (**)
并得到
g(n) = e^{log_2(n)} ; def of g(n)
= e^{log_e(n)/log_e(2)} ; (**)
= (e^{log_e(n)})^{1/log_e(2)} ; t^{s/r} = {t^s}^{1/r}
= n^{1/log_e(2)} ; e^{log_e(n)}=n
= n^{log_2(e)} ; (*) for x=b=e, a=2
但是由于e > 2
,我们推断出log_2(e) > 1
,比如说log_2(e) = 1 + δ
,δ > 0
。因此
g(n) = n*n^δ
我们现在必须g(n)
比较
f(n) = n*ln(n) ; def of f(n)
n^δ
这与比较相同ln(n)
。为此,我们可以计算
lim n^δ/ln(n)
这与
lim x^δ/ln x ; x → ∞
我们可以在哪里使用 L'Hôpital 规则
lim δx^{δ-1}/x^{-1} = lim δ x = δ lim x = ∞ ; δ > 0.
因此
lim g(n)/f(n) = ∞
并且g(n)
增长速度比f(n)
.
推荐阅读
- linux - gdb 无法解析 linux 内核的符号
- java - 在接收器之外的 App Link 中打开应用程序
- c# - c#:如果存在多个 ValidationAttribute,为什么 Validator 会省略 ValidationAttribute 验证?
- c# - 查询其他日历 - Windows Exchange
- javascript - 我可以在 Semantic UI React 的选项数组中为下拉组件指定 Divider 或 Header 吗?
- python - Django NameError:名称“模型”未定义
- maven - pom xml文件的Maven默认评估
- c# - 如何平滑地旋转 uwp 用户控件?
- date - 工艺线选择器。现在在开始日期和结束日期之间或现在大于开始日期和结束日期的位置为空
- tensorflow - 在服务时在 Keras 模型中包含 BEAM 预处理图