2011年安工算法设计与分析考试题.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  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文档。上传文档
查看更多
2011年安阳工学院 算法设计与分析考期末试题 一、填空 1算法三要素:操作,控制结构,数据结构 2广度优先搜索,深度优先搜索 简答 1、用计算机求解问题的步骤: 1、问题分析2、数学模型建立3、算法设计与选择4、算法指标5、算法分析6、算法实现7、程序调试8、结果整理文档编制 2回溯算法求解步骤 3动态规划基本步骤 三、计算题 (10)用贪心算法求如下背包问题的最优解,n=7,m=15,价值P={10,5,15,7,6,18,3},重量w={2,3,5,7,1,4,1},用列表表示 货物编号 1 2 3 4 5 6 7 P 10 5 15 7 6 18 3 W 2 3 5 7 1 4 1 P/W 5 1.6 3 1 6 4.5 3 解:p/w=经过排序后排号为:5,1,6,3,7,2,4 则5号先放入包,此时,W总=1,P总=6,x5=1 1号放入包,……………………=3,…..=16,..=1 6……………………………………….=7,……=34,..=1 7………………………………………=12,…..=49,..=1 2………………………………………=15,…..=55.3,..=2/3 故x4=0, 则得x={1,2/3,1,0,1,1,1,1},P总=55.3 注:此题有错误,欢迎同学们提出正确答案 (11)设有资源数目为3,分配给3个项目,g(x)为第i个项目得到资源x所得到的利润,求总利润最大的资源分配方案利润见表 额 项目 1 2 3 A 0.11 0.13 0.15 B 0.12 0.16 0.21 C 0.08 0.12 0.20 解:分阶段,逐步考虑每一个项目在不同资源分配情况利润,设fi(x)为将资源x分配前i个项目的最大利润,分3段决策过程: fi(x)=gi(x) 0=x=3 fi(x)=max{gi(z)+fi(x-z)} 0=x=3,i=3 分三步分析题: ①第一个项目A的资金x与利润fi(x)的关系如下: X y 0 1 2 3 fi(x) 0 0.11 0.13 0.15 ②分配前两项目的总资金x,x与利润f2(x)的关系,x2(0=x2=3)为分配给项目B的资金 x2 x 0 1 2 3 f2(x) 0 0 0.00 1 0.11 0.12 0.12 2 0.13 0.23 0.16 0.23 3 0.15 0.25 0.27 0.21 0.27 f1(1)=g1(1) f2(x2)=max(0=x2=2){g(x)+f(2-x)} ③当资源为3时,f3(3)=max(0=x3=3){g3(x)+f2(3-x)} X3 0 1 2 3 g3(x3) 0.00 0.08 0.12 0.20 f2(3-x3) 0.27 0.23 0.12 0.00 g3(x3)+f2(3-x3) 0.27 0.31 0.24 0.20 则f1(1)=g1(1)=0.11 f2(2)=g2(1)+f1(1)=0.23=0.12+0.11 f3(x3)max(0=x=3){g3(x)+f2(3-x)}=g3(1)+f2(2)=0.08+0.23 故当A分得1万元,B 分得1万元,C分得1万元,最后利润为最大0.31万元 () (14)为马的遍历问题check函数设计 Int check(int x,int y) {if(xm yn a[x]a[y]!=1) Return 1; else return 0; } (15)#include iostream Using namespace std; Int ack(int m,int n) { If(m==0) Return n+1; Else if(n==0) Return ack(m-1,1); Else Return ack(m-1,ack(m,n-1)); } Int main() { Int m,n,t; Cinmn; If(m0||n0) Cout”data is wrong”endl; Else If(m4) Cout”data is too longer”endl; Else If((m==4)(n0)) Cout”data is too longer”endl; Else If((m==3)(n10)) Cout”data is too longer”endl; Else If((m==2)(n5628)) Cout”data is too longer”endl; Else If((m==1)(n1259)) Cout”data is too longer”endl; Else T

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档