algorithm - 通过归纳法证明多项式 Big-Theta?

标签 algorithm big-o induction

我理解大 theta、大 oh 和大 omega 的概念。我只是很难证明它。我已经很长时间没有做归纳了,所以我很确定我只是生疏了,遗漏了一些简单的东西。

例如..我需要帮助的问题是证明5n² - 6n = Θ(n²)

我已经得到问题的大 O 部分(我分别做大 O 和 Ω 正确吗?):

6k² >= 5n² - 6n

和大欧米茄部分:

5n² - 6n >= n²

....但是我该从这里去哪里呢?!我从归纳中回想起类似...我假设这些是真实的,现在为每个 n 插入 (n+1) 并且...做.. 什么?在这一点上我迷失了自己。

最佳答案

要证明 5n^2-6n 是 O(n^2),您必须证明以下命题 5n^2-6n <= cn^2 对于所有数字 n >= n0,对于某些数字 n0 和常数 c。

归纳证明涉及证明基本案例的主张和证明归纳步骤。在我们的示例中,我们可以看到基本情况,当 n = 1 时,对于某个常数 c 显然成立。

对于归纳步​​骤,我们假设声明对于某个数字 k 为真,并用它来证明声明对于 k+1 为真。所以我们假设 5k^2-6k <= ck^2 并显示:

5(k+1)^2 - 6(k+1)  = 5k^2 +10k + 5 -6k - 6
                   = 5k^2-6k + 10k -1        
                  <= ck^2 + 10k - 1
                  <= ck^2 + c*2k + c       (for any constant c  >= 5)
                   = c(k+1)^2

这证明了 k+1 的主张并完成了证明。

您可以用类似的方式证明大 Omega 声明。

关于algorithm - 通过归纳法证明多项式 Big-Theta?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12498648/

相关文章:

c - 包含苹果的网格

algorithm - 这个算法的运行时间是多少? (递归帕斯卡三角形)

language-agnostic - 是否有任何自学的声明式/归纳式编程语言可以输入预期的结果,而不是遵循的过程?

algorithm - 求解递归的代入法

python - 从消耗时间的项目和不消耗时间但仍需要绘制空间的项目生成基于时间线的线性表示

algorithm - 例如,Reddit 排名的数学算法从何而来?

algorithm - 哈希表真的可以是 O(1) 吗?

python - 我的算法的运行时间复杂度 - 我如何计算它并进一步优化算法?

coq - 在归纳中使用记住而不是命题会在 Coq 中给出 'ill-typed' 错误

c++ - 最短成本路径