algorithm - 数量级的链式法则
问题描述
我正在寻找类似数量级的链式规则。认为:
y = O(x)
z = O(y)
然后:
z = O(x)
但我们可以比这更通用。如果 p 是多项式:
y = O(x)
z = O(p(y))
然后:
z = O(p(x))
这些似乎都不难证明。但是我们可以进一步概括这一点吗?
解决方案
证明很简单。假设p(y) = an y^k + ... + a1 y + a0
。因为,y = O(x)
有一个常数c
。y < c*x
因此,p(y) < an*c^k x^k + + ... + a1*c x + a0 = f(x)
。如果c <= 1
,p(y) < p(x)
如f(x) <= p(x)
。如果c > 1
,我们可以说p(y) < c^k p(x)
。因此,有一个常数c' = c^k
使得p(y) < c' p(x)
。因此,p(y) = O(p(x))
。
最终,z = O(p(y))
我们证明了z = O(p(x))
。
要获得更精确的证明,您可以对多项式的次数使用数学归纳法p(x)
。
为了概括这种情况,我们应该尝试找到具有特定属性的函数,即f(y) < c' f(x)
if y < c x
。功能的一大类f(x)
是增加,和f(cx) = \Theta(f(x))
。因此,所有这些函数都满足传递性。例如,f(x) = sqrt(x)
满足约束,但f(x) = 2^x
不满足。
推荐阅读
- javascript - 避免 JS 中的顺序动画回调地狱
- r - R使用dplyr计算组内不同值的数量
- python - 100x100 python 背面图像的分解和收集
- amazon-web-services - 别名记录在 Route53 中不起作用
- node.js - 为什么我在 Firebase 中收到此错误“函数返回未定义、预期的承诺或值”
- c# - Better way to get Interval bounds when only time is given
- python - Mat不是数字元组openCV 2
- javascript - Google Analytics(分析)用户 ID 跟踪无法正常工作
- sql-server - MS Access / T-SQL - 分组间隔数据
- android - 如何将 json 文件从 Android 手机上传到 firebase 数据库?