我对Big-O-Notation有疑问。 我们有zu证明或表明,以下的州议员,都不正确。我不知道如何展示它。
a)给定一个多项式p,其度k> = 1:log(p(n))∈Θ(log(n))
b)f,g∈Θ(h)⇒| f - g | ∈Θ(h),其中| f - g | :n→| f(n) - g(n)|
你们中的任何人都可以告诉我什么是正确的,而不是解释我怎么能表明这个?
答案 0 :(得分:0)
a)给定一个多项式p,其度k> = 1:log(p(n))∈Θ(log(n))
设p(n)= a [0] + a [1] n + a [2] n ^ 2 + ... + a [k] n ^ k,其中k> = 1.为了显示Theta我们必须显示O和Omega,或两种方式。为了显示O,我们证明存在c,使得对于n> n0,log(p(n))&lt; = c log(n)。首先,我们注意到&lt; = b iff e ^ a&lt; = e ^ b(因为e ^ x是单调增加的)。因此,log(p(n))&lt; = c log(n)iff p(n)&lt; = n ^ c。我们可以从p(n)的每个项中得出最高阶项n ^ k和具有最大幅度的系数的绝对值(称为a')得到:p(n)=(n ^ k)(a ')(b [0] / n ^ k + b [1] / n ^(k-1)+ ... + b [n])。注意,所有b [n]&lt;因此,我们得到p(n)<1。 (N ^ k)的(A')N。但是p(n)&lt; (n ^ k)(a')n = n ^(k + 1)(a')&lt; = n ^ c。设c = k + 1 + z。然后我们需要n ^(k + 1)(a')&lt; = n ^(k + 1)(n ^ z),如果'&lt; = n ^ z则为真。只要n>在图1中,存在z使得n ^ z> 1。 a'对于任何固定的':选择z&gt; log_n a'。
以另一种方式显示O作为练习。提示:n ^ k&lt; = p(n)。
答案 1 :(得分:0)
第1步
让我们来定义
k := deg(p)
A := max(|ck|, ..., |c0|)
其中ci
是p
的系数。然后
|p(n)| <= |ck|n^k + ... + |c1|n + |c0|
<= A n^k + ... + A n + A
<= A n^k + ... + A n^k + A n^k
<= (k+1)A n^k
然后
log(|p(n)|) <= log((k+1)A) + k log(n)
<= (log((k+1)A) + k) log(n)
因为log
是一个增加的函数,1 <= log(n)
是n >> 1
。换句话说
log(|p(n)|) ∈ (log(n))
(请注意,我使用|p(n)|
而不是p(n)
来包含p(n) < 0
的情况。)
第2步
i = 0, 1, ..., k-1
让我们定义
di := |ci|/|ck|
和
s := d_{k-1} + ... + d0
他们的总和。
现在取n0
整数n0 >= 2s
。对于任何n >= n0
我们有
n >= 2s
或
n/2 >= d_{k-1} + ... + d0
>= d_{k-1} + ... + d0/n^{k-1}
乘以n^{k-1}
(n^k)/2 >= d_{k-1} n^{k-1} + ... + d0
因此,对于n >= n0
我们得到
|p(n)| = |ck n^k + c_{k-1} n^{k-1} + ... + c0|
= |ck||n^k + c_{k-1}/ck n^{k-1} + ... + c0/ck|
>= |ck|(n^k - |c_{k-1}/ck n^{k-1} + ... + c0/ck|)
>= |ck|(n^k - |d_{k-1} n^{k-1} + ... + d0|)
>= |ck|(n^k - (n^k)/2)
= |ck|/2 n^k
考虑log
log(|p(n)|) >= log(|ck|/2) + k log(n) ∈ (log(n))
第一个结论
从上面的步骤1和2开始:
log(|p(n)|) ∈ (log(n))
第3步
让f, g ∈ Θ(h)
然后
|f(n) − g(n)| <= |f(n)| + |g(n)|
<= A h(n) + B h(n)
<= (A+B)h(n) ∈ (h)
<强>然而强>
|f(n) − g(n)| ∈ Θ(h)
通常不正确。这是一个例子:
f(n) = n^k + n^{k-1}
g(n) = n^k
这两个函数都属于Θ(n^k)
而
|f(n) - g(n)| = n^{k-1} ∈ Θ(n^{k-1}) ≠ Θ(n^k)