- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我希望找到以下复杂函数的大 O 表示法:f(n) = n^(1/4)
。
我想出了一些可能的答案。
O(n^1/4)
。但是,由于它包含一个根,所以它不是多项式,而且我从未在任何教科书或在线资源中见过这个第 n 个根 n
。<n
限制的上限函数。我尝试用 log2 n
in blue 和 n 绘制 n^(1/4)
in red
绿色。
log2 n
曲线在 n=2.361
处与 n^(1/4)
相交,而 n
在 n=1
处与 n^(1/4)
相交。
根据正式的数学定义,我们可以提出两个具有不同限制的附加大 O 符号。
以下显示 O(n)
适用于 n > 1
。
f(n) is O(g(n))
Find c and n0 so that
n^(1/4) ≤ cn
where c > 0 and n ≥ n0
C = 1 and n0 = 1
f(n) is O(n) for n > 1
这表明 O(log2 n)
适用于 n > 3
。
f(n) is O(g(n))
Find c and n0 so that
n^(1/4) ≤ clog2 n
where c > 0 and n ≥ n0
C = 1 and n0 = 3
f(n) is O(log2 n) for n > 3
通常会使用复杂度函数的哪个 Big O 描述? 3 个都“正确”吗?这取决于解释吗?
最佳答案
O(n^1/4)
非常适合大 O 符号。 Here are some examples of fractures in exponents from real life examples n^1/4
在O(n)
, 但不在 Theta(n)
中n^1/4
不在 O(log(n))
中(证明指南如下)。对于任何值 r>0
,并且对于足够大的值 n
, log(n) < n^r
.
证明:
看看log(log(n))
和 r*log(n)
.对于足够大的值,第一个明显小于第二个。在大 O 符号术语中,我们可以明确地说 r*log(n))
不在 O(log(log(n))
中, 和 log(log(n))
是(1),所以我们可以说:
log(log(n)) < r*log(n) = log(n^r) for large enough values of n
现在,以 e
为底对每一边进行指数运算.请注意,对于足够大的 n
,左手值和右手值都是正值:
e^log(log(n)) < e^log(n^r)
log(n) < n^r
此外,通过类似的方式,我们可以证明对于任何常量c
,并且对于足够大的值 n
:
c*log(n) < n^r
因此,根据定义,它表示 n^r
不在 O(log(n))
中,以及您的具体案例:n^0.25
不在 O(log(n))
中.
脚注:
(1) 如果你还不确定,新建一个变量m=log(n)
, 比 r*m
清楚吗不在 O(log(m))
中?如果您想练习,证明它很容易。
关于algorithm - n 的四次方根的复杂度函数的大 O 表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30360436/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
我有实体: @Entity @Table(name = "CARDS") public class Card { @ManyToOne @JoinColumn(name = "PERSON_I
我正在尝试计算二维多边形的表面法线。我正在使用 OpenGL wiki 中的 Newell 方法来计算表面法线。 https://www.opengl.org/wiki/Calculating_a_S
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 7 年前。 Improve
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我这里有以下 XML: Visa, Mastercard, , , , 0, Discover, American Express siteonly, Buyer Pay
即将发生的 Google 政策变更迫使我们实现一个对话框,以通知欧盟用户有关 Cookie/设备标识符用于广告和分析的情况。我只想向欧盟用户显示此对话框。我不想使用额外的权限(例如 android.p
本文分享自华为云社区《华为大咖说 | 企业应用AI大模型的“道、法、术” ——道:认知篇》,作者:华为云PaaS服务小智。 本期核心观点 上车:AGI是未来5~10年内,每个人都无法回避的技
我有一个与酒精相关的网站,需要先验证年龄,然后才能让他们进入该网站。我使用 HttpModule 来执行此操作,该模块检查 cookie,如果未设置,我会将它们重定向到验证页面。我验证他们的年龄并存储
在欧盟,我们有一项法律,要求网页请求存储 cookie 的许可。我们大多数人都了解 cookie 并同意它们,但仍然被迫在任何地方明确接受它们。所以我计划编写这个附加组件(ff & chrome),它
以下在 C 和/或 C++ 中是否合法? void fn(); inline void fn() { /*Do something here*/ } 让我担心的是,第一个声明看起来暗示函数将被定义
我是一名优秀的程序员,十分优秀!