首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
(2013年下半年下午试题四)阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 某工程计算中要完成多个矩阵相乘(链乘)的计算任务。 两个矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,计算量主要由进
(2013年下半年下午试题四)阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 某工程计算中要完成多个矩阵相乘(链乘)的计算任务。 两个矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,计算量主要由进
admin
2018-07-27
65
问题
(2013年下半年下午试题四)阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。
【说明】
某工程计算中要完成多个矩阵相乘(链乘)的计算任务。
两个矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,计算量主要由进行乘法运算的次数决定。采用标准的矩阵相乘算法,计算A
m×n
*B
n×p
,需要m*n*p次乘法运算。
矩阵相乘满足结合律,多个矩阵相乘,不同的计算顺序会产生不同的计算量。以矩阵A1
10×100
,A2
100×5
,A3
5×50
三个矩阵相乘为例,若按(A1*A2)*A3计算,则需要进行10*100*5+10*5*50=7500次乘法运算;若按A1*(A2*A3)计算,则需要进行100*5*50+10*100*50=75000次乘法运算。可见不同的计算顺序对计算量有很大的影响。
矩阵链乘问题可描述为:给定n个矩阵<A
1
,A
2
,…,A
n
>,矩阵Ai的维数为p
i-1
×p
i
,其中i=1,2,…,n。确定一种乘法顺序,使得这n个矩阵相乘时进行乘法的运算次数最少。
由于可能的计算顺序数量非常庞大,对较大的n,用蛮力法确定计算顺序是不实际的。经过对问题进行分析,发现矩阵链乘问题具有最优子结构,即若A1*A2*…*An的一个最优计算顺序从第k个矩阵处断开,即分为A1*A2*…*Ak和Ak+1*Ak+2*…*An两个子问题,则该最优解应该包含A1*A2*…*Ak的一个最优计算顺序和Ak+1*Ak+2*…*An的一个最优计算顺序。据此构造递归式
式中,cost
[j]表示Ai+1*Ai+2*…*Aj+1的最优计算的计算代价。最终需要求解cost[0][n-1]。
【C代码】
算法实现采用自底向上的计算过程。首先计算两个矩阵相乘的计算量,然后依次计算3个矩阵、4个矩阵、……、n个矩阵相乘的最小计算量及最优计算顺序。下面是该算法的C语言实现。
(1)主要变量说明
n:矩阵数
seq[]:矩阵维数序列
cost[][]:二维数组,长度为n*n,其中元素cost
[j]表示Ai+1*Ai+2*…*Aj+1的最优计算的计算代价
trace[][]:二维数组,长度为n*n,其中元素trace
[j]表示Ai+1*Ai+2*…*Aj+1的最优计算对应的划分位置,即k
(2)函数cmm
#define N 100
int cost[N][N];
int trace[N][N];
int cmm(int n,int seq[]){
int tempCost;
int tempTrace;
int i,j,k,p;
int temp;
for(i=0;i<n;i++){ cost
=0; }
for(p=1;p<n;p++){
for(i=0;_______(1);i++){
_____(2);
tempCost=-1;
for(k=i;k<j;k++){
temp=______(3);
if(tempCost==-1 ||tempCost>temp){
tempCost=temp;
_______(4);
}
}
cost
[j]=tempCost;
trace
[j]=tempTrace;
}
}
return cost[0][n-1];
}
根据以上说明和C代码,填充C代码中的空(1)~(4)。
选项
答案
(1)i<n-p (2)j=i+p (3)cost[i][k]+cost[k+1][j]+seq[i]*seq[1(+1]*seq[+1](4)tempTrace=k;
解析
上述算法中,第一个循环是给n个cost
赋初值0;第二个循环是个外循环,其循环变量p是矩阵连乘的规模,(p=1时)先计算出所有规模为2的cost[i,i+1],(p=2)再计算出所有规模为3的cost[i,i+2],……,最后计算出来的即为我们所求的cost[1,n-1],所以空(1)处应填入i<n-p;第三个循环是内循环,其循环变量i表示矩阵连乘的起始位置,即从l,1+1,…,i,1+i,…,一直算到n-1,n,所以空(2)处应填入j=i+p;第四个循环用于计算min{cost[i,j](i≤k<j)},所以空(3)处应填入cost
[k]+cost[k+1][j]+seq
*seq[k+1]*seq[i+1];空(4)处用于追踪取得最小花费代价的k值,应填入tempTrace=k。
转载请注明原文地址:https://kaotiyun.com/show/p7DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
请说出图9-1的拓扑结构名称与特点。根据IP地址与子网掩码,请判断它们是否属于同一个网段?如果不是,请说出他们分别属于哪个网段。
将图2-2中(1)和(2)空缺名称填写在对应的解答栏内。按照G.lite的最高速率标准,上传24MB的文件需要多少秒时间?
将图2-2中(1)和(2)空缺名称填写在对应的解答栏内。目前在使用ADSL访问Internet时,要不要收取电话费?
将图2-2中(1)和(2)空缺名称填写在对应的解答栏内。ADSL有哪两种IP地址的分配方式?
下面是某路由器的部分配置信息,解释(n)处标有下划线部分的含义。【配置路由器信息】Currentconfiguration:!version11.3noservicepassword
认真阅读下列有关Linux操作系统的Samba配置技术的说明,根据要求回答问题1至问题6。【说明】SMB(ServerMessageBlock,服务消息块)协议主要用于实现Windows和Linux操作系统中计算机之间共享打印机、共享串行接
认真阅读以下实现VLAN间路由的配置技术说明,根据要求回答问题1至问题6。【说明】当交换机上的VLAN数量很多时,通常会采用路由器快速以太网子接,及IEEE802.1Q封装对VLAN间的数据进行路由。在如图3-12所示的拓扑图中,在交换机
阅读以下基于Linux操作系统部署DHCP服务的技术说明,根据要求回答问题1至问题3。【说明】某地市图书馆内部局域网划分为办公区、电子阅览室、无线阅览室等3个VLAN,并通过一台带防火墙模块的路由器与Internet网互连。为了便于整个局域网IP
为了便于用户下载相关资料,特安装一台FTP服务器,其服务器端软件是Serv-U,假如要增加一个名为CIU10009的用户,对应目录为D盘,且要求加密,在图6-4中怎么设置?假如用户人数达到1000,为了保证100个用户同时正常下载,请问在图6-4中怎么
为了便于用户下载相关资料,特安装一台FTP服务器,其服务器端软件是Serv-U,假如要增加一个名为CIU10009的用户,对应目录为D盘,且要求加密,在图6-4中怎么设置?假如要封闭某用户的账号,请问在图6-4中怎么设置?
随机试题
病窦综合征的患者若出现症状,可采用__________治疗,效果理想。
《出境货物报检单》的“货物名称”一栏应填写合同、信用证上所列名称。( )
2020年3月,某审计组对丙公司2019年度财务收支进行了审计,有关投资与筹资循环审计的情况和资料如下:1.审计人员在对筹资与投资循环内部控制进行调查时了解到:(1)生产、研发和投资等部门根据各自业务发展需要提出资金需求,交财会部门统筹制定筹资计划。
某国家机关采购一批货物,甲供应商与其成交,经过该国家机关同意,甲将该成交项目分包给乙和丙。根据政府采购法的有关规定,下列说法中正确的是()。
位于建制镇的某公司主要经营农产品采摘、销售和观光业务,公司占地5000平方米,房产原值3000000元。2009年发生以下业务:(1)全年取得旅游业务收入1500000元。(2)6月30日签订房屋租赁合同一份,将价值500000元的办公用房
ThreeWaystoBecomeMoreCreativeMostpeoplebelievetheydon’thavemuchimagination.Theyarewrong.Everyonehasimaginatio
“朝阳群众”为警方提供很多线索,破获了一系列的案子。谈谈你对“朝阳群众”现象的理解。
甲、乙各以20%与80%的份额共有一间房屋,出租给丙。现甲欲将自己的份额转让,请问下列表述中哪一说法是正确的?()
设随机变量X与-X服从同一均匀分布U[a,b],已知X的概率密度f(χ)的平方f2(χ)也是概率密度,则b=_______.
Whattimedothephotographyclassesbegin?HowmuchdoesPhilippayforthephotographycourse?
最新回复
(
0
)