2009级硕士研究生算法基础试卷答案.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2009级硕士研究生算法基础试卷答案

试卷编号: 专业班级: 学号: 姓名: (试题均为5号字) 备注:1、先修、重修同学必须注明(先修、重修) 2、试卷背面为演算区(不准用自带草纸) ………………………………………装………………………………………………订…………………………………………………线…………………………………………… 大连海事大学 第2009-20010学年第 1 学期 《算法设计与分析》试卷 (工学硕士09级) (参考答案) 计算题部分(共15分) 证明题部分(共25分) 三、对于函数f(n)和g(n),若lim g(n)/f(n)存在,则f(n)=Ω(g(n))当且仅当存在确定的常数c,有lim g(n)/f(n)≤c。 证明:先证充分性:若f(n)=Ω(g(n)),则lim g(n)/f(n)≤c。 5分 根据Ω的定义,当f(n)=Ω(g(n))成立时,即存在正常数a和n0,使得对于所有的n≥n0,有f(n)≥a*g(n)。 考虑到f(n)的非负性,以及a为正常数,所以有: g(n)/f(n)≤1/a, 因为lim g(n)/f(n)存在,可令c=1/a,所以有因为lim g(n)/f(n)≤c。 充分性成立。 5分。 再证明必要性(有两种方法:一是根据定义推理;二是利用反证法)。 因为lim g(n)/f(n)存在,可设为a,且有lim g(n)/f(n)≤c。 于是,根据极限定义有,对于给定的任意小的常数ε>0,存在n1,使得对于一切n≥n1时,有 |g(n)/f(n)-a|≤ε,也即有-ε≤g(n)/f(n)-a≤ε,a-ε≤g(n)/f(n)≤ε+a,所以有 g(n)/f(n)≤ε+a,考虑到f(n)的非负性,所以有f(n)≥c*g(n),其中c=1/(ε+a)0为常数。再取n0=n1, 也就是说,存在正常数c和n0,使得对于一切的n≥n0,有f(n)≥c*g(n),从而有f(n)=Ω(g(n))。 证毕。 5分。 四、证明依据贪婪算法Greedy_Knapsack构造问题的解时,能够生成一个最优解。 (10分) 证明: 设x=(x1, …, xn)是Greedy_Knapsack所生成的解。如果所有的xi等于1,显然这个解就是最优解(效益值为Σpi)。 于是,设j是使xj≠1的最小下标。由算法可知,对于l≤i<j,xi=1;对于j<i≤n,xi=0;对于j,0≤xj<1。 如果x不是一个最优解,则必定存在一个可行解y=(y1, …, yn),使得Σpiyi>Σpixi。 不失一般性,可以假定Σwiyi=M。且设k是使得yk≠xk的最小下标。显然,这样的k必定存在。 由上面的假设,可以推得yk<xk。这个结论可从以下三个方面,即k<j,k=j或k>j分别加以证明。 ① 若k<j,则xk=1。因yk≠xk,从而yk<xk; ② 若k=j,则由于Σwixi=M,且对于l≤i<j,有xi=yi=1,而对于j<i≤n,有 xi=0。 若yk>xk,显然有Σwiyi>M,与y是可行解矛盾; 若yk=xk,与假设yk≠xk矛盾,故yk<xk。 ③ 若k>j,则Σwiyi>M,这是不可能的。 现在,假定把yk增加到xk,那么必须从(yk+1, …, yn)中减去同样多的量,使得所用的总容量仍是M。 这导致一个新解z=(z1, …, zn),其中zi=xi,1≤i≤k,并且有 Σwi(yi-zi)=wk(zk-yk)。 因此,对于z有 Σpizi = Σpiyi + (zk-yk)wkpk/wk -Σ(yi-zi)wipi/wi ≥ Σ piyi + [(zk-yk)wk - Σ(yi-zi)wi]*pi/wk = Σpiyi 若Σpizi>Σpiyi,则y不可能是最优解;若相等,且z=x,则x就是最优解; 若z≠x,则需重复上述讨论,或者证明y不是最优解,或者把y转换成x,从而证明了x也是最优解。 证毕。 (根据步骤给分) 五、证明n!=О(nn) (5分) 证明:对于任意的n0,有 n!=1×2×…×n ≤ n×n×…×n=nn 令c=1,即有 n! ≤nn 所以,根据大○定义,有 n!=О(nn) 证毕。 5分。 算法题部分(共60分) 六、对于下表左部给定的算法,计算该算法的时间渐进复杂性。 (10分) 语句 s/e 频率 总步数 Void MergeLi

文档评论(0)

cgtk187 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档