我正在寻找类似链式规则的数量级。假设:
y = O(x)
z = O(y)
然后:
z = O(x)
但是我们可以比这更通用。如果p是多项式:
y = O(x)
z = O(p(y))
然后:
z = O(p(x))
似乎没有一个很难证明。但是,我们可以将其进一步推广吗?
答案 0 :(得分:1)
证明很简单。假设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)
(如果为y < c x
)的特定属性的函数。函数的一大类别是f(x)
不断增加,而f(cx) = \Theta(f(x))
则不断增加。因此,所有这些功能都将满足传递性。例如,f(x) = sqrt(x)
满足约束条件,但f(x) = 2^x
不满足约束条件。