一、课后习题
3.1-1 假设与
都是渐近非负函数。使用
记号的基本定义来证明
不妨假设 , 要证明
, 即证明存在正常量
和
使得
,因此当
=1/2,
=1 时,上式成立,得证。
3.1-2 证明:对任意实常量a和b,其中b>0,有
要证明, 即证明 存在正常量
和
使得
,取
=1和
即成立,得证。
3.1-3 解释为什么“算法A的运行时间至少是”这一表述是无意义的。
因为的含义是函数的紧确上界为
,说算法A的运行时间至少是
指出的是下界,因此这一表述是无意义的。
3.1-4 成立吗?
成立吗?
成立
不成立,因为不存在
使得
3.1-5 证明定理 对任意两个函数和
,我们有
,当且仅当
且
首先证明 可以推出
和
,由于
表示 存在正常量
和
使得
,即
和
成立,因此
和
成立
其次证明当和
时,
, 由于
表示
,
表示
,因此
,即
, 得证。
3.1-6 证明:一个算法的运行时间为当且仅当其最坏情况运行时间为
,且其最好情况运行时间为
一个算法的运行时间为,即表示这个算法的运行时间
, 由3.1-5提到的定理可得,
并且
, 因此该算法的下界(最好情况运行时间)为
,上界(最坏情况运行时间)为
3.1-7 证明:为空集
根据定义, 代表的集合是
对任意正常量
,存在常量
,使得对所有
,有
代表的集合是
对任意正常量
,存在常量
,使得对所有
,有
用反证法,假设存在一个函数f(n) 同时满足上述两个条件,即 并且
同时成立,由于和均为正常量,定义要求对任意正常量c 均满足不等式,因此上述两式引发出矛盾,
,因此假设不成立,得证。
3.1-8 可以扩展我们的记号到有两个参数n和m的情形,其中的n和m可以按不同速率独立第趋于无穷。对于给定的函数,用
来表示以下函数集:
存在正常量
和
,使得对于所有
或
,有
对和
给出相应的定义
存在正常量
和
,使得对于所有
或
,有
存在正常量
和
,使得对于所有
或
,有
3.2-1 证明: 若f(n) 和 g(n) 是单调递增的函数,则函数f(n)+g(n) 和 f(g(n)) 也是单调递增的,此外,若f(n) 和 g(n) 是非负的,则f(n) · g(n) 是单调递增的。
由于f(n) 和 g(n) 为单调递增函数,因此对于, 有
和
,将不等式左右分别相加可得
,因此
也是单调递增的。
若f(n) 和 g(n) 是非负的,则对于所有的n有且
,则
,同时
和
,因此
,因此
是单调递增的。
3.2-2 证明等式
首先对左右两边分别lg,
由于,因此上式可转为
,得证。
3.2-3 证明等式 。并证明
1) 证明等式,即证明存在正常量
和
, 使得对所有
,有
,
首先证明左边成立,用斯特林公式代替,即证明存在
,使得
所以证明 即证明上式大于0。由于当n=e,
时,上式大于0,因此只要证明
为单调递增函数即可,将
带入,并对该式求导可得
该导数对于n>e 恒大于0,因此为单调递增函数,即对于
,存在
使得
成立
其次证明右边成立,即证明,由于
,因此存在
使得
成立。
结合以上两步可得,得证。
2)证明
即对任意正常量,存在常量
,使得对所有
,有
,因此
3) 证明
即对任意正常量,存在常量
,使得对所有
,有
,因此
3.2-4 函数 多项式有界吗?函数
多项式有界吗?
首先,函数f(n)多项式有界表示 ,两边求对数
,即
1) 不是多项式有界
结合和
2) 是多项式有界的
3.2-5 如下两个函数中,哪一个渐近更大些:还是
?
因为 , 所以
渐近更大一点。
3.2-6 证明: 黄金分割率及其共轭数
都满足方程
将代入方程,
将代入方程,
3.2-7 用归纳法证明:第i个斐波那契数满足等式, 其中
是黄金分割率且
是其共轭数。
当i=0时,成立,假设当i=k-1和i=k-2时,上式成立,
即,
,
则
由于,得证。
3.2-8 证明: 蕴含着
根据对称性,有蕴含
两边取对数,
上述两式相除可得 ,再应用一次对称性,可得,
,得证。
二、思考题
3-1 (多项式的渐近行为)假设是一个关于n的d次多项式,其中
,k是一个常量。使用渐近记号的定义来证明下面的性质。
a. 若,则
b. 若,则
c. 若, 则
d. 若, 则
e. 若, 则
- a) 因为
,
,即存在c =d>0 使得
,因此
- b) 因为
,因此
,即存在c=1>0使得
,因此从
- c) 因为
,因此
,该式对于
和
时成立,因此
- d) 因为
,因此
,即存在c=d>0使得
,因此
- e) 因为
,因此
,即存在c=1>0使得
,因此
3-2 (相对渐近增长) 为下表中的每对表达式(A,B)指出A是否是B的或
。假设
且
均为常量。回答应该以表格的形式,将“是”或“否”写在每个空格中。
| A | B | O | o | |||
| 是 | 是 | 否 | 否 | 否 | ||
| 是 | 是 | 否 | 否 | 否 | ||
| 否 | 否 | 否 | 否 | 否 | ||
| 否 | 否 | 是 | 是 | 否 | ||
| 是 | 否 | 是 | 否 | 是 | ||
| 是 | 否 | 是 | 否 | 是 |
3-3 (根据渐近增长率排序)
a. 根据增长的阶来排序下面的函数,即求出满足的函数得到一种排列
。把你的表划分成等价类,使得函数f(n)和g(n)在相同类中当且仅当
。
b. 给出非负函数f(n)的一个例子,使得对所有在(a)部分中的函数,f(n)既不是
也不是
- a) 排序如下
-
,
-
-
,
,
,
,
-
- b) 只要函数本身处于随着n振荡的状态,且f(n) 的最大值比
大即可,因此可以设置
3-4 (渐近记号的性质)假设f(n)和g(n)为渐近正函数。证明或反驳下面的每个猜测。
a. 蕴含
b.
c. 蕴含
,其中对所有足够大的n,有
且
d. 蕴含
e.
f. 蕴含
g.
h.
- a) 不成立。因为
即
,且
,推不出
,其中
- b) 不成立。因为假设
,则不存在
,使得
- c) 成立。因为
表示 存在
使得
,两边取对数即
, 只要
上式即成立,因此
- d) 成立。因为要证明
即证明存在
使得
,两边取对数
,由于
,因此上式成立。
- e) 不成立。假设
即不存在
- f) 成立。因为
,即表示存在
使得
,因此
, 所以
- g) 不成立。假设
,则不存在
使得
- h) 成立。假设
,因此
即存在
使得
,因此
3-5 (与
的一些变形) 某些作者用一种与我们稍微不同的方式来定义
;假设我们使用
(读作“
无穷”)来表示这种可选的定义。若存在正常量c,使得对无穷多个整数n,有
,则称
a. 证明:对渐近非负的任意两个函数f(n)和g(n),或者或者
或者二者均成立,然而,如果使用
来代替
,那么该命题并不为真
b. 描述用代替
来刻画程序运行时间的潜在优点与缺点。
某些作者也用一种稍微不同的方式来定义,假设使用
来表示这种可选的定义。我们称
当且仅当
c. 如果使用代替
但仍然使用
,定理3.1中的“当且仅当”的每个方向将出现什么情况?
有些作者定义(读作“软
”)来意指忽略对数因子的
:
存在正常量
和
,使得对所有
,有
d. 用一种类似的方式定义和
。证明与定理3.1相对应的类似结论。
- a) 首先证明对于
,只可能对无限个n,有限个n或者0个n成立,即只可能存在
,
或者二者均成立。 如果使用
来代替
,假设
,该式对于
成立,但是并不满足当
时,
,即
不成立。
- b) 优点:这个界相较于
更为宽松。缺点:不是紧确的渐近下界,实际意义不大。
- c) 当且仅当会变为蕴含,即
,但是反向推不出来。
- d)
的定义为 :
存在正常量
和
,使得对所有
,有
的定义为:
存在正常量
和
,使得对所有
,有
3-6 (多重函数) 我们可以把用于函数中的重复操作符
应用于实数集上的任意单调递增函数f(n)。对给定的常量
,我们定义多重函数
为
该函数不必在所有情况下都为良定义的。换句话说,值是为缩小其参数到c或更小所需要函数f重复应用的数目。
对如下每个函数f(n)和常量c,给出的一个尽量紧确的界。
| 0 | ||
| 1 | ||
| 1 | ||
| 2 | ||
| 2 | ||
| 1 | does not converge | |
| 2 | ||
| 2 |
本文详细解答了《算法导论》第三章的课后习题与思考题,涵盖函数渐近性质、算法运行时间分析、数学证明等内容,包括单调递增函数性质、对数和指数的等式证明、斐波那契数列与黄金分割率的关系等重点问题。

1573

被折叠的 条评论
为什么被折叠?



