首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C代码,回答以下问题,将解答写在答题纸的对应栏内。 【说明】 某工程计算中要完成多个矩阵相乘(链乘)的计算任务。 两个矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,计算量主要由进行乘法运算的次数决定。采用标准的矩阵相乘算法
阅读下列说明和C代码,回答以下问题,将解答写在答题纸的对应栏内。 【说明】 某工程计算中要完成多个矩阵相乘(链乘)的计算任务。 两个矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,计算量主要由进行乘法运算的次数决定。采用标准的矩阵相乘算法
admin
2014-05-07
68
问题
阅读下列说明和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];
}
根据以上说明和C代码,填充C代码中的空(1)~(4)。
选项
答案
(1)i
解析
本问题考查算法的实现。C程序中主要部分是三重循环,循环变量p定义了求解问题的规模,因为是自底向上,因此,p的值应该是从1到n-1,即从规模为1的问题一直到规模为n-1的问题。循环变量i是要求解的子问题的起始,从O开始,最大为n-p-1,故(1)处应填n-p。确定了i和p之后,下来就要确定j了,显然,空(2)处为j=i+p。循环变量k是问题Ai*Ai+1*…*Aj的划分位置,对每一个k,都要计算需要的计算成本,可以根据递归式来填写,空(3)处为cost
[k]+cost[k+1][j]+seq
*seq[k+1]*seq[j+1]。确定每个问题Ai*Ai+1*…*Aj的划分位置k之后,要把这个k值记住,放在变量。tempTrace中,即空(4)处填写tempTrace=k。
转载请注明原文地址:https://kaotiyun.com/show/0iDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
能够主动采集信息,分析网络攻击行为和误操作的实时保护策略是指(64)。
广义的软件测试由“确认”、“验证”、“测试”三个方面组成,其中“确认”是______。A.想证实在一个给定的外部环境中软件的逻辑正确性,检查软件在最终的运行环境上是否达到预期的目标B.检测软件开发的每个阶段、每个步骤的结果是否正确无误,是否与软件开发各
软件可靠性管理把软件可靠性活动贯穿于软件开发的全过程,成为软件工程管理的一部分。确定软件的可靠性目标在()阶段。
采用UML进行软件设计时,可用(17)关系表示两类事物之间存在的特殊/一般关系,用聚集关系表示事物之间存在的整体/部分关系。
关系数据库是表的集合。对视图进行查询,本质上就是查询从_______中获得的数据。
编译和解释是实现高级程序设计语言的两种基本方式,________是这两种方式的主要区别。
[Java源程序:一个简单的Web服务器]/************************************************************//*WebServer.java*//******
将图2-1中(1)和(2)空缺名称填写在应的位置。使ADSL的传输速率更高有哪两个主要因素?
阅读以下说明,回答问题1~6。[说明]某公司已有一个100用户的有线局域网。由于业务的发展,现有的网络不能满足需求,需要增加40个用户的网络连接,并在公司客户接待室连接网络以满足合作伙伴实时咨询的需求。现结合公司的实际情况组建无线局域网,具体拓扑
随机试题
基层业务人员和管理人员使用的信息是()
A.异丙托溴铵B.沙丁胺醇C.沙美特罗D.噻托溴铵E.福莫特罗短效β2受体激动剂为
固体分散体中药物的分散状态有
取得一级资质的合伙的房地产估价机构的出资额为人民币()万元以上。
对于大型复杂的产品,应用价值工程的重点应放在( )。
下列选项中属于保证担保范围的有()。
机关事业单位在参加基本养老保险的基础上,应当为其工作人员建立职业年金。单位按本单位工资总额的()缴费,个人按本人缴费工资的()缴费。
18,1/3,6,2,12,()
根据材料。回答121-125题。2005年教育行业的固定投资额为()亿元。
CharlieBellbecamechiefexecutiveofMcDonald’sinApril.Withinamonthdoctorstoldhimthathehadcolorectalcancer.After
最新回复
(
0
)