- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《算法设计与分析》平时作业
《算法设计与分析》平时作业
第三次作业
给定M=20,(p1,p2,p3,p4,p5,p6)=(11,8,15,18,12,6), (w1,w2,w3,w4,w5,w6)=(5,3,2,10,4,2),利用贪心法找出背包问题的最佳解。并用分枝限界法求解,比较两种方法的结果。
写出一个求解河内塔问题的递归算法。
递归算法如下:
void HN(int n, char s, char u, char d )
{
if (n==1)
couts”→”d
else
{
Exercise2(n-1,s,d,u)
couts”→”d
Exercise2(n-1,u,s,d)
}
}
写出一个求解河内塔问题的非递归算法。
先定义一个STRCT类型的变量为temp,并定义堆栈S(其元素类型为STRCT)
STRCT类型定义如下:
Struct STRCT {
Int height;
Chr from,to using
Chr* addr;
}
非递归算法描述如下:
void HN(height,from,to,using,addr);
PUSH(temp)
if (S[top].height==1) {
cout S[top].from”→” S[top].to
goto S[top].addr
}else
{
height= S[top].height-1; from= S[top].from;
to= S[top].using;using= S[top].to; addr=第(3)步;
};
goto 第(1)步;
POP(temp);
cout S[top].from”→” S[top].to
height= S[top].height-1; from= S[top].using; to= S[top].to;
using= S[top].from; addr=第(5)步;
goto第(1)步;
POP( temp);
goto S[top].addr;
其中函数中各参数初始值为n,f,t,u及程序结束地址。
用Strassen算法计算下列矩阵的乘积:
解:一般矩阵算法如下:
=
其中,C11=A11*B11+A12*B21,C12=A11*B12+A12*B22
C21=A21*B11+A22*B21,C22=A21*B12+A22*B22
根据Strassen算法:
p1=(A11+A22)(B11+B22)= =
p2=(A21+A22)B11=
p3=A11(B12-B22)=
p4=A22(B21-B11)=
p5=(A11+A12)B22=
p6=(A21-A11)(B11+B12)=
p7=(A12-A22)(B21-B22)=
C11=p1+p4-p5+p7=,C12=p3+p5=
C21=p2+p4=,C22=p1+p3-p2+p6=
用动态规划算法求通过图4-38所示网络的最长和最短路线。
解:先将顶点划分成以下三个子集:
① ② ③
cost(3,5)=5; cost(3,6)=4; cost(3,4)=min(8+5,9,9+4)=9
cost(2,2)=min(6+cost(3,5),6+cost(3,4))
=min(6+5,6+9)=11
cost(2,3)=min(5+cost(3,4); 7+cost(3,6))
=min(5+9,7+4)=11
cost(1,1)=min(4+cost(2,2),5+cost(2,3))
=min(4+11,5+11)=15
由此得到最短路线为1,2,5,7;长度为15
最长路线求法类似。
修改算法4-20,只要找到问题的一个解,算法便终止。
procedure BACKTRACK(n)
begin
k=1
while k0 do
if 对于还没有试探过的值x(k),有
x(k)∈T(x(1),…,x(k-1))且Bk(x(1),…,x(k))的值为真
then begin
if (x(1),…,x(k))是一个解 then
write(x(1),…,x(k));
exit
end
else
k=k-1
end
实验三
内容: 。 目的:
您可能关注的文档
- ERP系统说明书-眉山网站建设,网页设计.doc
- FAME谱图分析方法及其应用-yzxz.com.doc
- EV2工程科技在线数据库产品更新目.ppt
- filesUploadFiles2011-1020154615315.ppt-上海市农村中小学教育.ppt
- Fields(菲尔兹)奖获得者介绍-国家数学与交叉科学中心.doc
- FIN307数据库管理系统与金融应用.doc
- fj201611110462768879.doc-国防科学技术大学.doc
- fjnuzbxjjs.pps-福建师范大学经济学院.ppt
- file協和工商設計群__宋誌凱主任簡報.ppt-臺北市高職學生家長會聯合會.ppt
- Fortran程式語言之編.ppt
文档评论(0)