gpt4 book ai didi

algorithm - n 的四次方根的复杂度函数的大 O 表示法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:29:29 25 4
gpt4 key购买 nike

我希望找到以下复杂函数的大 O 表示法:f(n) = n^(1/4)

我想出了一些可能的答案。

  1. 更准确的答案似乎是O(n^1/4)。但是,由于它包含一个根,所以它不是多项式,而且我从未在任何教科书或在线资源中见过这个第 n 个根 n。<
  2. 使用数学定义,我可以尝试定义一个具有指定 n 限制的上限函数。我尝试用 log2 n in bluen 绘制 n^(1/4) in red 绿色

enter image description here

log2 n 曲线在 n=2.361 处与 n^(1/4) 相交,而 nn=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 个都“正确”吗?这取决于解释吗?

最佳答案


对于任何值 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com