algorithm - 大 O 符号(两侧)
问题描述
我需要一步一步证明:7 + O(n) = O(n)
当两边都有大O时,我不知道该怎么做。
我想我理解大 O 符号的概念,但为什么两边都有大 O?
解决方案
这种表示法的使用不符合大 O 表示法的正式定义,因此不清楚证明需要达到什么级别的形式。此外,由于符号不是正式的,因此需要一些解释来决定实际需要证明什么。
我将此解释为要求证明,给定 O( n ) 中的任何函数,如果将该函数的所有值加 7,则新函数也在 O( n ) 中。更正式地说,对于O( n ) 中的所有f,函数g ( n )= f ( n )+7 也在 O( n ) 中。
这可以从定义中直接证明:
- 我们需要证明,对于O( n ) 中的每个f,函数g ( n )= f ( n )+7 也在 O( n ) 中。
- 由于f在 O( n ) 中,因此存在常数c和N,使得对于所有n >= N,f ( n ) <= cN的值。
- 因此,对于所有n >= N,只要N >= 1 , g ( n ) = f ( n ) + 7 <= cN + 7 <= ( c + 7) N。
因此,给定常数c和N证明f在 O( n ) 中,常数 ( c + 7) 和 max( N , 1) 用于证明g在 O( n ) 中。QED。
推荐阅读
- javascript - 使用 Web 请求运行 JavaScript?
- android - 运行应用程序时,我的片段布局文件无法显示按钮
- reactjs - 在 React 中创建日视图日历并显示事件
- c++ - 在 CMake 中添加链接器标志并自动执行 gcc 命令
- reactjs - 用数组反应 Recharts 数据
- json - 如何从 JDBC 模板获取 JSON 值
- r - 合并具有不同变量的行
- amazon-web-services - 如何使用 aws 网络负载均衡器将流量发送到非 aws 端点
- java - Apache mina-sshd ssh 客户端总是打印 EdDSA provider not supported
- javascript - 在 JavaScript 中使用 PHP 回显选项生成的选择选项