Big o 渐近分析不等式

Big o 渐近分析不等式,big-o,asymptotic-complexity,inequalities,Big O,Asymptotic Complexity,Inequalities,我有一个问题,那就是如何为这个渐近分析问题推导出以下以红色突出显示的不等式。有人能解释一下这些不平等的性质以及它们是如何产生的吗 下图显示了问题和解决方案。红色突出显示的部分是我无法理解的地方 问题和解决方案的图片 准备工作 上图中红色标记部分上方的部分正是大Θ符号的定义:“f(n)inf(n))”,带有 我们将重复此不等式,以简化引用,并证明其适用于以下情况: f(n) is in Θ(g(n)) with f(n) and g(n) as in (+) and (++), respectiv

我有一个问题,那就是如何为这个渐近分析问题推导出以下以红色突出显示的不等式。有人能解释一下这些不平等的性质以及它们是如何产生的吗

下图显示了问题和解决方案。红色突出显示的部分是我无法理解的地方

问题和解决方案的图片

准备工作 上图中红色标记部分上方的部分正是大Θ符号的定义:“
f(n)
in
f(n))
”,带有

我们将重复此不等式,以简化引用,并证明其适用于以下情况:

f(n) is in Θ(g(n)) with f(n) and g(n) as in (+) and (++), respectively

  <=>

c_1⋅n^b ≤ (n + a)^b ≤ c_2⋅n^b, for some positive constants c_1, c2     (*)
                               for n ≥ n_0, with n_0 constant > 0
对于一些正常数
k_1
k_2
(分别与
c_1
c_2
有关,如
k_1^b=c_1
k_2^b=c_2

表明
(ii)
有效

我们将首先说明
(ii)
对于某个正常数
k_1
是成立的。为此,我们可以自由选择
n\u 0
,这样
n\u 0≥ |a
(因为a只是一个常数)

现在,通过
(II)
我们已经证明
(II)
成立,
k_1=2
n_0
是大于
abs(a)
n_0的任何值≥ |a |

表明
(i)
有效

现在展示
(i)
:我们首先要注意以下不等式始终成立:

n + a ≥ n - |a|                  (†)
(如果
a
为负,则实际上相等)。现在,回想一下上面提到的
(II)
适用于任何
n\u 0≥ |a |
。好的,让我们选择在
2处修复我们的
n0
⋅|a |
(再次注意:我们可以自由选择要显示不等式
(*)
成立的常数)

因此,从
(†)

通过
(**)
,我们已经证明
(**)
是有效的,但是

c_1 = k_1^b = (1/2)^b = 2^(-b)
c_2 = k_2^b = 2^b   (note that the solution you posted has an error here)
n_0 = 2⋅|a|
因此,我们已经证明了
f(n)
as in
(+)
Θ(g(n))
中,而
g(n)
(++)



最后请注意,
c_1
c_2
k_1
k_2
)和
n_0
(*)
中的选择并不是唯一的:有无数种方法可以表明
(*)
有效(如果有效),或者不存在。在本例中,您的解决方案的作者的特定选择很自然,但我们可以选择任何数量的其他常量集。

非常感谢您提供的详细答案@user5884813很乐意帮忙!
=> n ≥ |a| ≥ a, since n ≥ n_0 ≥ |a|

Hence:

n + a ≤ n + |a| ≤ n + n = 2⋅n, for n ≥ n_0 ≥ |a|   (II)
n + a ≥ n - |a|                  (†)
Choose n_0 as n_0 = 2⋅|a|        (††)
n + a ≥ n - |a| ≥ n - n/2 = n/2  (†††)
                ^
                | 
               Why? Since from (††): |a| = n_0/2 < n/2, since n>n_0

We repeat (†††) without the middle stuff:  

n + a ≥ (1/2)⋅n, for n > n_0 = 2⋅|a|                (I)
(I) & (II) => (1/2)⋅n ≤ n + a ≤ 2⋅n

With b>0, this yields: 

   ((1/2)⋅n)^b ≤ (n + a)^b ≤ (2⋅n)^b                (**)
c_1 = k_1^b = (1/2)^b = 2^(-b)
c_2 = k_2^b = 2^b   (note that the solution you posted has an error here)
n_0 = 2⋅|a|