首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
(2013年下半年下午试题四)阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 某工程计算中要完成多个矩阵相乘(链乘)的计算任务。 两个矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,计算量主要由进
(2013年下半年下午试题四)阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 某工程计算中要完成多个矩阵相乘(链乘)的计算任务。 两个矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,计算量主要由进
admin
2018-07-27
82
问题
(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代码,该问题采用了_____(5)算法设计策略,时间复杂度为____(6)(用O符号表示)。
选项
答案
(5)动态规划 (6)O(n
3
)
解析
求min(cost
[k]+cost[k+1][j]+P
i
*P
k-1
*P
j
)要做p次比较(k=i,i+1,…,j,而j=i+p);而第3层的循环(for(k=i;k<j;k++))要做n-p次,故该循环执行完毕要做p+n-p=n次比较。第2层的循环for(i=0;i<n.p;i++)从1做到n-1,第1层的循环for(i=0;i<n;++)从1做到n-1。故循环执行完毕要做O(n
3
)比较,此即该算法的时间复杂度。
转载请注明原文地址:https://www.kaotiyun.com/show/Z7DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
请问无线局域网的工作模式有哪几种?常见的无线网络协议有哪些?
阅读以下说明,回答问题1、问题2、问题3、问题4和问题5,将解答填入对应栏内。[说明]以太网宽带接入方式是目前许多居民小区所普遍采用的,其方式为所有用户都通过一条主干线接入Internet,每个用户均配备个人的私有IP地址,用户只需将小区
从图7-1中可以看出采用什么拓扑结构与设计方法?上述拓扑结构的特点是什么?
阅读以下说明,将应填入(n)处的解答填写在对应栏内。【说明】某网络结构如图5-7所示,如果Router3与网络4之间的线路突然中断,按照RIP路由协议的实现方法,路
阅读以下有关网络设备安装与调试的叙述,分析设备配置文件,回答问题1~3。虚拟局域网(VirtualLAN)是与地理位置无关的局域网的一个广播域,由一个工作站发送的广播信息帧只能发送到具有相同虚拟网号的其他站点,可以形象地认为,VLAN是在物理局域
阅读以下有关网络设计的叙述,分析网络结构,回答问题1、问题2和问题3。某企业从20世纪50年代中期开始使用PC,历经3+网络、NOVELL网络的应用,后着手组建企业网络。经过需求分析和论证,设计出网络方案如图3-2所示。
阅读以下说明,回答问题1和问题2。【说明】二层隧道协议L2TP(Layer2TunnelingProtocol)是一种基于点对点协议PPP的二层隧道协议。某网络结构如图2-7所示,采用L2TP来实现网络安全。
认真阅读以下实现VLAN间路由的配置技术说明,根据要求回答问题1至问题6。【说明】当交换机上的VLAN数量很多时,通常会采用路由器快速以太网子接,及IEEE802.1Q封装对VLAN间的数据进行路由。在如图3-12所示的拓扑图中,在交换机
在图8-12所示的拓扑结构中的代理服务器上依次单击“开始→程序→管理工具→路由与远程访问,并在系统弹出的界面中打开“IP路由选择”目录树,然后用鼠标右键单击“NAT/基本防火墙”,选择[新增接口]命令。接着若选择接口1的“本地连接”,最后进行如图8-13所
随机试题
赤芍不具有的功效是牡丹皮不具有的功效是
顺式阿曲库铵的特点有
环境因素按其属性可分为()。
存款保险制度中的被保险存款只能是投保机构吸收的人民币存款。()
有的心理学家把问题行为分成______问题行为、________问题行为和社会上的不成熟行为三种类型。
强攻战是在谈判中以绝不退让或高压的态度,迫使对方让步的策略。强攻战可以随时随地发生,却又可随时随地死而复生。强攻战的具体策略有:针锋相对、最后通牒、扮疯相、最大预算、说绝话等。根据上述定义,下列各项不能达到强攻战效果的是:
在半殖民地半封建社会条件下,由于经济地位决定了在政治上带有两重性的阶级是()。
某操作系统支持页式虚拟存储管理,其中央处理器的周期是1μs。当不是处于同一页面时,访问另一个页面耗时1μs。一个页面含1K字。使用磁盘作为外存,其转速为3000r/min,传输率1M字/s。还测得下列数据:磁盘平均寻道时间为19ms,1%的指令要访问不处于
中国民主主义革命分为旧民主主义革命与新民主主义革命,新旧民主主义革命的最主要区别表现在
Howdoesyourreadingproceed?Clearlyyoutrytocomprehend,inthesenseofidentifyingmeaningsforindividualwordsandwork
最新回复
(
0
)