complexity-theory - 渐近符号:证明 Big Omega、O 和 Theta
问题描述
我有一些我没有完全掌握的渐近符号问题。
因此,在证明渐近复杂性时,我理解找到一个常数的操作以及该符号适用的 n0 项。因此,例如:
Prove 7n+4 = Ω(n)
在这种情况下,我们将选择一个常数 c,使其低于 7,因为这是关于 Big Omega。选择 6 将导致
7n+4 >= 6n
n+4 >= 0
n = -4
但是由于 n0 不能是负数,我们选择一个正整数,所以 n0 = 1。
但是像这样的问题呢:
Prove that n^3 − 91n^2 − 7n − 14 = Ω(n^3).
我选择 1/2 作为常数,达到
1/2n^3 - 91n^2 - 7n -14 >= 0
.
但我不确定如何继续。另外,像这样的问题,我认为关于theta:
Let g(n) = 27n^2 + 18n and let f(n) = 0.5n^2 − 100. Find positive constants n0, c1 and c2 such
that c1f(n) ≤ g(n) ≤ c2f(n) for all n ≥ n0.
在这种情况下,我是否在这里执行两个单独的操作,一个大 O 比较和一个大 Omega 比较,以便存在 theta 关系或紧密绑定?如果是这样,我会怎么做?
解决方案
为了证明 n 3 − 91n 2 − 7n − 14 在 Ω(n 3 ) 中,我们需要展示一些数字 n 0和 c,使得对于所有 n ≥ n 0:
n 3 - 91n 2 - 7n - 14 ≥ cn 3
你已经选择了 c = 0.5,所以让我们继续吧。重新排列给出:
n 3 − 0.5n 3 ≥ 91n 2 + 7n + 14
两边都乘以 2 并化简:
182n 2 + 14n + 28 ≤ n 3
对于所有 n ≥ 1,我们有:
182n 2 + 14n + 28 ≤ 182n 2 + 14n 2 + 28n 2 = 224n 2
当 n ≥ 224 时,我们有 224n 2 ≤ n 3。因此,选择 n 0 = 224 和 c = 0.5 表明原始函数在 Ω(n 3 ) 中。
推荐阅读
- python - 有没有办法使用带有默认字段的数据类和 __slots__
- webhooks - 对 Google 本地存储培训短语的操作
- javascript - React Native 的 FlatList proprenderItem 需要额外的“item”(item) => {item.item.name}?
- db2 - 未使用 DB2 ODBC 密码
- python - Python 2.7:更新列表中的元素
- php - 在 jQuery 中,我使用 ajax 在 codeigniter 中为搜索用户调用 api 但 respose 不显示
- sql - 将表定义克隆到 SQL Server 中的表变量
- php - 在 Codeigniter 上创建权限而不检查 URI 段
- java - 外网访问内网MongoDB
- excel - 打开存储在字符串变量中的路径和文件名的工作簿