算法练习题1
Posted 上山打老虎D
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法练习题1相关的知识,希望对你有一定的参考价值。
算法练习题
1. 证明对任意常实数 a a a和 b b b,其中 b > 0 b>0 b>0有 ( n + a ) b = Θ ( n b ) (n+a)^b=\\Theta(n^b) (n+a)b=Θ(nb)
解:
依题,对于
∀
b
>
0
,
(
n
+
a
)
b
=
θ
(
n
b
)
∀b>0,(n+a)^b=θ(n^b )
∀b>0,(n+a)b=θ(nb)都有:
当
a
>
0
a>0
a>0时,
n
b
<
(
n
+
a
)
b
<
2
b
∗
n
b
n^b<(n+a)^b<2^b*n^b
nb<(n+a)b<2b∗nb
即
c
1
=
1
,
c
2
=
2
b
c_1=1,c_2=2^b
c1=1,c2=2b
同理有当
a
<
0
a<0
a<0时,
2
−
b
∗
n
b
<
(
n
+
a
)
b
<
n
b
2^-b*n^b<(n+a)^b<n^b
2−b∗nb<(n+a)b<nb
即
c
1
=
2
−
b
,
c
2
=
1
c_1=2^-b,c_2=1
c1=2−b,c2=1
满足
(
n
+
a
)
b
=
θ
(
n
b
)
(n+a)^b=θ(n^b )
(n+a)b=θ(nb)的定义,故得证
2. 解释为什么“算法 A A A的运行时间至少是 O ( n 2 ) O(n^2) O(n2)”这句话是无意义的
解:因为时间复杂度 O ( n 2 ) O(n^2 ) O(n2)只代表时间随数据量规模的增加变化程度,并不指任何具体运行时间。且 O ( n 2 ) O(n^2 ) O(n2)描述了时间变化程度的上界,而至少描述了下界。综上两条,“算法 A A A的运行时间至少是 O ( n 2 ) O(n^2 ) O(n2)”这一表述是无意义的。
3. 2 ( n + 1 ) = O ( 2 n ) 2^(n+1)=O(2^n) 2(n+1)=O(2n)成立吗? 2 2 n = O ( 2 n ) 2^2n=O(2^n) 22n=O(2n)成立吗?
解: 2 ( n + 1 ) = O ( 2 n ) 2^(n+1)=O(2^n ) 2(n+1)=O(2n)成立, 2 2 n = O ( 2 n ) 2^2n=O(2^n ) 22n=O(2n)不成立
4. 证明 lim n → + ∞ n ! 2 π n ( n e ) n = 1 \\lim\\limits_n \\rightarrow +\\infty \\fracn!\\sqrt2\\pi n(\\fracne)^n=1 n→+∞lim2πn(en)nn!=1
解:
不妨设
a
n
=
n
!
n
(
n
+
1
2
)
e
−
n
a_n=\\fracn!n^(n+\\frac12) e^-n
an=n(n+21)e−nn!
则有:
a
n
a
n
+
1
=
(
n
+
1
)
n
+
3
2
n
n
+
1
2
(
n
+
1
)
e
=
1
e
(
1
+
1
n
)
n
(
1
+
1
2
)
1
2
\\fraca_na_n+1 =\\frac(n+1)^n+\\frac32n^n+\\frac12(n+1)e =\\frac1e(1+\\frac1n)^n(1+\\frac12)^\\frac12
an+1an=nn+21(n+1)e(n+1)n+23=e1(1+n1)n(1+21)21
所以:
a
n
a
n
+
1
>
1
\\fraca_na_n+1>1
an+1an以上是关于算法练习题1的主要内容,如果未能解决你的问题,请参考以下文章