首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C代码,回答以下问题,将解答写在答题纸的对应栏内。 【说明】 某工程计算中要完成多个矩阵相乘(链乘)的计算任务。 两个矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,计算量主要由进行乘法运算的次数决定。采用标准的矩阵相乘算法
阅读下列说明和C代码,回答以下问题,将解答写在答题纸的对应栏内。 【说明】 某工程计算中要完成多个矩阵相乘(链乘)的计算任务。 两个矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,计算量主要由进行乘法运算的次数决定。采用标准的矩阵相乘算法
admin
2014-05-07
48
问题
阅读下列说明和C代码,回答以下问题,将解答写在答题纸的对应栏内。
【说明】
某工程计算中要完成多个矩阵相乘(链乘)的计算任务。
两个矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,计算量主要由进行乘法运算的次数决定。采用标准的矩阵相乘算法,计算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个矩阵
,矩阵Ai的维数为p
i-1
×pi,其中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
D]表示Ai+1*Ai+2*…*Aj+1的最优计算的计算代价
trace[][]:二维数组,长度为n*n,其中元素tmce
U]表示Ai+1*Ai+2*…*Aj+1的最优计算对应的划分位置,即k
(2)函数cmnl
#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
=0; )
for(p=1;P
for(i=0; (1) ;i++){
(2) ;
tempCost=-1;
for(k=i; k
temp= (3) ;
if(tempCost==-1 I I tempCost>temp){
tempCost=temp;
(4);
}
}
cost
[J]=tempCost;
trace
[J]=tempTrace;
}
}
return cost[0][n-1];
}
考虑实例n=6,各个矩阵的维数:A1为5*10,A2为10*3,A3为3*12,A4为12*5, A5为5*50,A6为50*6,即维数序列为5,10,3,12,5,50,6。则根据上述C代码得到的一个最优计算顺序为(7)(用加括号方式表示计算顺序),所需要的乘法运算次数为(8)。
选项
答案
(7)((A1 A2)((A3 A4)(A5 A6))) (8)2010
解析
本问题考查算法的应用。通过一个具体实例可以更容易理解问题和求解方法。可以根据问题1中的程序执行来求解。启发式的思路是先把维度最大的消掉,如A5*A6相乘之后,维度50就没有了,所以考虑这两个矩阵先相乘;然后是A3*A4相乘之后,维度12就没有了,所以考虑这两个矩阵相乘;接着,A1*A2相乘之后,维度10就没有了,所以考虑这两个矩阵相乘……这样可以确定相乘的顺序((A1A2)((A3A4)(A5A6))),需要的计算开销分别是5*50*6=1500,3*12*5=180,5*10*3=150,3*5*6=90,5*3*6=90,把上述值相加,即1500+180+150+90+90=2010。
转载请注明原文地址:https://kaotiyun.com/show/giDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
用面向对象方法设计了一个父类File和两个子类DiskFile和TapeFile,这两个子类继承了其父类的open方法,并给出不同的实现。不同的子类执行open方法时,有不同的行为,这种机制称为_____。
某软件设计师自行将他人使用C程序语言开发的控制程序转换为机器语言形式的控制程序,并固化在芯片中,该软件设计师的行为(15)。
以下关于建立良好的程序设计风格的叙述中,正确的是()。
(60)是功能测试工具。
某校园网用户无法访问外部站点210.102.58.74,管理人员在Windows操作系统下可以使用(30)判断故障发生在校园网内还是校园网外。
软件需求规格说明书的内容不包括_______。
阅读以下说明,回答问题1至问题4,将解答填人答题纸的对应栏内。[说明]某小公司的网络拓扑如图9-2所示。其中路由器具有ISDN模块,公司网络通过ISDN连接到ISP。
SSL协议使用(1)密钥体制进行密钥协商。在IIS5.0中,Web服务器管理员必须首先安装Web站点数字证书,然后Web服务器才能支持SSL会话,数字证书的格式遵循ITU-T(2)标准。通常情况下,数字证书需要由(3)颁发。如果Web服务器管理员希望W
从下列选项中选取合适的答案分别填入图4-1中的(1)~(4)处。A.DES算法B.MD5算法C.会话密钥D.数字证书E.甲的公钥F.甲的私钥G.乙的公钥H.乙的私钥以下关于摘要
IIS安装的硬盘分区最好选用NTFS格式,是因为(1)和(2)。A.可以针对某个文件或文件夹给不同的用户分配不同的权限B.可以防止网页中的Applet程序访问硬盘中的文件C.可以使用系统自带的文件加密系统对文件或文件夹进行加密
随机试题
________是指在政策制定过程中从一个不同的评价角度来看待事物。()
一男性新生儿,颈部见一卵圆形、直径10.5cm的肿块,触之有波动感,肿物大体检查呈多囊性,镜下含有大小不等薄壁管腔,内衬单层扁平内皮细胞,免疫组化CD31、CD34阳性,关于此病,下列说法正确的是
患者,女,29岁。1周前因食物嵌塞痛就诊,诊断为深龋,垫底后银汞合金充填。现患者出现冷热刺激敏感,无自发痛及咬合痛。如确定术前诊断正常,垫底及充填完好,最适宜的处理方法是
A.亲和力及内在活性都强B.与亲和力和内在活性无关C.具有一定亲和力但内在活性弱D.有亲和力、无内在活性,与受体不可逆性结合E.有亲和力、无内在活性,与激动药竞争相同受体受体部分激动药()。
在计算应纳税所得额时,企业应按照规定计算的固定资产折旧,准予扣除。下列选项中,应计算折旧扣除的是()。
项目总承包方项目管理工作涉及项目()的全过程。
不属于证券投资基金与股票、债券的区别的是()
雾霾:污染:生病
用幸运、外滩、外婆、清楚、下雨五个词编一个故事。
设(X,Y)的联合概率密度为.求:(1)(X,Y)的边缘密度函数;(2)Z=2X—Y的密度函数.
最新回复
(
0
)