gpt4 book ai didi

algorithm - 无法理解 O(f(n))

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

以下循环的值(value)是什么:

T(n) = T(n/4) + T(n/2) + cn², T(1) = c, T(0) = 0

其中 c 是正常数:

  1. T(n) = O(n³)
  2. T(n) = O(n²)
  3. T(n) = O(n² log n)
  4. T(n) = O(n log n)

正确答案是2,但我有疑问。根据 O(f(n)) 的定义,它给了我们一个上限,O(n²) 是最小上限。所以在我看来 O(n³) 和 O(n² log n) 也应该是真的。

T(n) = 1/2n² + 3n

以下哪些陈述是正确的(勾选所有适用项。)

  1. T(n) = O(n)
  2. T(n) = Ω(n)
  3. T(n) = θ(n²)
  4. T(n) = O(n³)

这里,正确答案是 2、3 和 4。

那么,我是不是理解错了定义,还是犯了一些错误?

最佳答案

让我们尝试证明T(n) = O(n^2)第一次使用归纳法复发。
我将使用 Big O 的这个定义(来自 CLRS ):

Big O Definition

对于一些常量 kn_0 .

基本步骤:

Basis Step .同样适用于 T(0) , 但由于 T(0) = 0 , 它对重复没有任何贡献,我们可以选择 T(1)作为我们的基本案例。

归纳步骤:

假设T(n/2) = O(n^2) , 现在推导出 T(n) .自 T(n/4) <= T(n/2) ,我们的假设意味着 T(n/4) = O(n^2) .

我们有

T(n/2) = O(n²) iff 0 < T(n/2) <= c<sub>1</sub>(n/2)^2

对于一些常量 c_1 .

Lemma

持有,设置x = T(n)y_1, ..., y_n对于所有归纳假设的表达式产生:

Algebraic Deduction

Q.E.D.

(如果我在某处搞砸了,请告诉我!)

So in my opinion O(n³) and O(n² log n) should also be true.

O(n^2) <= O(n^2 log n) <= O(n³) <= O(n^100) ,所以是的,你是完全正确的。你可以像上面那样证明它是正确的。然而,非正式地,人们经常使用 Big O可与上限互换。这是不精确的,但习惯了。如果你从高等教育机构那里得到这些问题,那当然是有问题的。

So, am I understanding the definition incorrectly or am I making some mistake?

你基本上是正确的。但是,现实世界与形式的正确性无关,因此请提防非正式主义并了解更多信息。顺便说一句,许多人也对待 Landau 符号 Big O , Big Omega , 和 Big Theta相同,即使它们绝对不是。

关于algorithm - 无法理解 O(f(n)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49562754/

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