Big-Theta:乘以Theta(n)和Theta(n ^ 2)= Theta(n ^ 3)?

时间:2016-02-15 22:31:50

标签: time-complexity multiplication big-theta

如果f(n)=Θ(n)且

g(n)=Θ(n ^ 2),

然后f(n)* g(n)=Θ(n ^ 3)?

1 个答案:

答案 0 :(得分:2)

问题

从技术上讲,Θ(n)是一组函数,因此我们说f 位于 Θ(n),而不是f(n)等于Θ(n)

因此,我们要调查的问题是:

  

h(n) = g(n) · f(n)                                           (*)
     

f ∈ ϴ(n)g ∈ ϴ(n^2)是否意味着h ∈ ϴ(n^3)

制剂

让我们首先松散地陈述Big-Θ符号的定义

  

<强> f ∈ ϴ(g(n))

     

⇨对于某些正常数k1k2n0,以下内容适用:

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)成立,所以存在 do 这样的集合,我们可以在不失一般性的情况下假设我们可以找到一组常量(c1, c2, n0)(d1, d2, m0)c1=d1c2=d2n0=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^2k2=c2^2,并在h(n) = f(n) · g(n) ---之间插入---到(iii),产生

    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)