- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章习题
证明当时,任何多项式属于集合
解:0
所以
对于下列每一种函数,指出它们属于哪一种类型(尽量使用最简单的g(n)),并给出证明。
a. b. c.
d. e.
解: a.
所以
b.
所以
c. 由于,。显然,当n 时,nlgn,所以
d. 由于,。显然,当n 时,,所以
e. +1, 又,+1
所以
写出下列表达式的结果:
a. b. c.
a.解:
b.解:c.解:
计算增长次数(即写出下列和的)
a. b c d
解:a. b. c. d.
的采样方差n可以这样计算:
,其中
或者
根据每个公式,对求方差时需要用到的除法、乘法和加/减运算的次数进行计算和比较。
解:第一个公式: 除法:2次, 乘法:n次, 加/减法:3n-1次
第二个公式:除法:2次, 乘法:n+1次, 加/减法:2n次
考虑下面的算法
算法 secret(A[0..n-1])
//输入:包含n个实数的数组A
minval ( A[0]; maxval ( A[0]
for i ( 0 to n-1 do
if A[i] minval
minval ( A[i]
if A[j] maxval
maxval ( A[i]
return maxval-minval
对于本算法,试回答下述问题:
该算法求的是什么?
它的基本操作是什么?
该基本操作执行了多少次?
该算法的效率类型是什么?
对该算法进行改进,若不可能,试证明之。
解:1)数组中最大的元素与最小元素之差
2)比较大小
3)2n次
4)
5) 可以使用
if A[i] minval
minval ( A[i]
else if A[j] maxval
maxval ( A[i]
替换
if A[i] minval
minval ( A[i]
if A[j] maxval
maxval ( A[i]
在输入并非最糟糕的情况下,能在一定程度上提升算法的效率。
已知算法GE如下:
算法GE(A[0..n-1, 0..n])
// 输入: 一个n行n+1列的实数矩阵A
for i (0 to n-2 do
for j ( i+1 to n-1 do
for k ( i to n do
A[j,k] ( A[j,k] – A[i,k] * A[j,i]/A[i,i]
试问:
该算法的时间效率类型
该算法有何性能缺陷,试改进之。
解:1)将循环最内层的A[j,k] ( A[j,k] – A[i,k] * A[j,i]/A[i,i]中的乘法M(n)或除法D(n)作为基本操作
M(n)=D(n) =
故该算法的时间效率类型为
2)由于在最内层循环A[j,k] ( A[j,k] – A[i,k] * A[j,i]/A[i,i]中,A[j,i]/A[i,i]并不包含最内层循环变量k。所以我们可以使用temp= A[j,i]/A[i,i], A[j,k] ( A[j,k] – A[i,k] * temp来减少除法的操作次数。
求解下列递归关系
x(n)= 3x(n-1),其中n1,x(1)=4
x(n)= x(n/3)+ n,其中n1,x(1)=1(给出n=3k的情况求解)
x(n)= 4x(n-1) + x(n-2) - 4,其中n=0, x(0)=0, x(1)=1。
解:1)x(n) = 3x(n ? 1)
= 3[3x(n ? 2)] = 32x(n ? 2)
= 32[3x(n ? 3)] = 33x(n ? 3)
= …
= 3ix(n ? i)
= ...
= 3n?1x(1) = 4·3n?1.
2)x(n) = x(n/3) + n for n 1, x(1) = 1 (solve for n = 2k)
x(3k) = x(3k?1) + 3k
= [x(3k?2) +3k?1] + 3k = x(3k?2) + 3k?1 +3k
= [x(3k?3) + 3k?2] + 3k?1 + 3k = x(3k?3) + 3k?2 +3k?1 +3k
= ...
= x(3k?i) + 3k?i+1 +3k?i+2 + ... + 3k
= ...
= x(3k?k) + 31 + 32 + ... + 3k =
原创力文档


文档评论(0)