Time complexity 大θ:乘以θ(n)和θ(n^2)=θ(n^3)?
如果f(n)=Θ(n)和 g(n)=Θ(n^2) 那么f(n)*g(n)=Θ(n^3)?问题 从技术上讲,Time complexity 大θ:乘以θ(n)和θ(n^2)=θ(n^3)?,time-complexity,multiplication,big-theta,Time Complexity,Multiplication,Big Theta,如果f(n)=Θ(n)和 g(n)=Θ(n^2) 那么f(n)*g(n)=Θ(n^3)?问题 从技术上讲,Θ(n)是一组函数,所以我们说f在Θ(n)中,而不是f(n)等于Θ(n) 因此,我们要调查的问题是: 让 h(n) = g(n) · f(n) (*) 是否f∈ ϴ(n)和g∈ ϴ(n^2)意味着h∈ ϴ(n^3) 准备工作 首先,让我们粗略地说明Big-ϴ符号的定义 f∈ ϴ(g(n)) ⇨ 对于某些正
Θ(n)
是一组函数,所以我们说f
在Θ(n)
中,而不是f(n)
等于Θ(n)
因此,我们要调查的问题是:
让
h(n) = g(n) · f(n) (*)
是否f∈ ϴ(n)
和g∈ ϴ(n^2)
意味着h∈ ϴ(n^3)
准备工作 首先,让我们粗略地说明Big-ϴ符号的定义
f∈ ϴ(g(n))
⇨ 对于某些正常数k1
、k2
和n0
,以下公式适用:
k1 · |g(n)| ≤ |f(n)| ≤ k2 · |g(n)|, for all n ≥ n0 (+)
我们将使用下面的定义,但在不丧失一般性的情况下,假设上述f(n)
和g(n)
对所有n
都是非负的
解决方案
从上面我们可以说明,对于一些正的常数集(c1,c2,n0)
和(d1,d2,m0)
,以下条件成立
f ∈ ϴ(n): c1 · n ≤ f(n) ≤ c2 · n, for all n ≥ n0 (i)
g ∈ ϴ(n^2): d1 · n^2 ≤ g(n) ≤ d2 · n^2, for all n ≥ m0 (ii)
现在,常数集(c1、c2、n0)
(以及(d1、d2、m0)
)不是唯一的;如果存在这样一个集合,则存在无限多个这样的集合。因为f∈ ϴ(n)
和g∈ ϴ(n^2)
保持不变,这样的集合确实存在,我们可以在不丧失普遍性的情况下,假设我们可以找到一组常数(c1,c2,n0)
和(d1,d2,m0)
,使得c1=d1
,c2=d2
和n0=m0
都保持不变。因此,我们可以将(i-ii)
重新表述为:
f ∈ ϴ(n): c1 · n ≤ f(n) ≤ c2 · n, for all n ≥ n0 (I)
g ∈ ϴ(n^2): c1 · n^2 ≤ g(n) ≤ c2 · n^2, for all n ≥ n0 (II)
对于某些正常量集(c1、c2、n0)
现在,由于n>n0>0
,上述不等式(I-II)
中的所有项都是正的,我们可以直接应用(*)
:
(I) * (II):
c1^2 · n^3 ≤ f(n) · g(n) ≤ c2^2 · n^3, for all n ≥ n0 (iii)
现在,让k1=c1^2
和k2=c2^2
,并在h(n)=f(n)·g(n)
中插入--
k1 · n^3 ≤ h(n) ≤ k2 · n^3, for all n ≥ n0 (III)
这就是(+)
对h的定义∈ ϴ(n^3)
,因此我们通过展示以下内容解决了我们的问题:
对于h(n)
如(*)
:f∈ ϴ(n)
和g∈ ϴ(n^2)
意味着h∈ ϴ(n^3)