首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C代码,根据要求回答问题1~问题3。 【说明】 某工程计算中要完成多个矩阵相乘(链乘)的计算任务。两个矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,计算量主要由进行乘法运算的次数决定。采用标准的矩阵相乘算法,计算Am×n*Bn×p,需要m
阅读以下说明和C代码,根据要求回答问题1~问题3。 【说明】 某工程计算中要完成多个矩阵相乘(链乘)的计算任务。两个矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,计算量主要由进行乘法运算的次数决定。采用标准的矩阵相乘算法,计算Am×n*Bn×p,需要m
admin
2014-11-13
19
问题
阅读以下说明和C代码,根据要求回答问题1~问题3。
【说明】
某工程计算中要完成多个矩阵相乘(链乘)的计算任务。两个矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,计算量主要由进行乘法运算的次数决定。采用标准的矩阵相乘算法,计算A
m×n
*B
n×p
,需要m*n*p次乘法运算。矩阵相乘满足结合律,多个矩阵相乘,不同的计算顺序会产生不同的计算量。以矩阵A
110×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个矩阵
n>,矩阵A
i
的维数为P
i-1
×P
i
,其中i=1,2,…,n。确定一种乘法顺序,使得这n个矩阵相乘时进行乘法的运算次数最少。由于可能的计算顺序数量非常庞大,对较大的n,用蛮力法确定计算顺序是不实际的。经过对问题进行分析,发现矩阵链乘问题具有最优子结构,即若AI*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+l的最优计算的计算代价
trace[][]:二维数组,长度为n*n,其中元素trace
[j]表示Ai+1*Ai+2:i:…*Aj+1的最优计算对应的划分位置,即k
(2)函数cmm
#define N 100
int cost [N]IN];
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 j p
for(i=0; (1) ;i++){
(2);
tempCost=一1;
for(k=i;k
temp= (3);
i f(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个cost
附赋初值0;第2个循环是个外循环,其循环变量p是矩阵连乘的规模,(p:1时)先计算出所有规模为2的cost[i,i+1],(p=2时)再计算出所有规模为3的cost[i,i+2],……,最后计算出来的即为我们所求的cost[1,n—1],所以(1)填i
[k]+cost[k+1][j]+seq
*seq[k+1]*seq[j+1];而(4)用于追踪取得最小花费代价的k值,即tempTrace=k;而每一项的计算可在O(1)时间里完成。
转载请注明原文地址:https://kaotiyun.com/show/npDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
启动init进程前,不需要经过______步骤。A.LIIO加载内核B.检测内存C.加载文件系统D.启动网络支持Linux系统运行级别3工作在______状态。A.单用户字符模式B.多用户字符模式
启动init进程前,不需要经过______步骤。A.LIIO加载内核B.检测内存C.加载文件系统D.启动网络支持inittab文件存放在______目录中。A./etc15./bootC
IIS安装的硬盘分区最好选用NTFS格式,是因为(1)和(2)。A.可以针对某个文件或文件夹给不同的用户分配不同的权限B.可以防止网页中的Applet程序访问硬盘中的文件C.可以使用系统自带的文件加密系统对文件或文件夹进行加密
阅读以下说明,回答问题1至问题6。【说明】某公司在WindowsServer2003中安装IIS6.0来配置Web服务器,域名为www.abc.com。
销售部的网络号是(1),广播地址是(2):技术部的网络号是(3),广播地址是(4);每个子网可用的IP地址有(5)个。在网关计算机上使用以下路由命令创建两个默认的路由:routeadd-net192.168.1.0255.255.2
在校园网设计过程中,划分了很多VLAN,采用了VTP来简化管理。1.VTP信息只能在(1)端口上传播。2.运行VTP的交换机可以工作在三种模式:(2)、(3)、(4)。3.共享相同VLAN数据库的交换机构成一个(5)。该校园网采
请阅读下列SwitchA的配置信息,并在(1)~(5)处解释该语句的作用。Switch>enable(进入特权模式)Switch#configterminal(进入配置模式)Switch(config)#hostnameSwi
阅读以下说明,回答问题1至问题5。【说明】某网络拓扑结构如图3-1所示,DHCP服务器分配的地址范围如图3-2所示。
阅读以下Linux系统中关于IP地址和主机名转换的说明,回答问题1-3。【说明】计算机用户通常使用主机名来访问网络中的节点,而采用TCP/IP协议的网络是以IP地址来标记网络节点的,因此需要一种将主机名转换为IP地址的机制。在Linux系统
1.路由器第一次设置时,必须通过Console口连接运行终端仿真软件的计算机进行配置,此时终端仿真程序设置的波特率应为(1)b/s。2.路由器有多种配置模式,请根据以下命令提示状态,判断路由器处于何种配置模式下。Router(Config)
随机试题
根据慢性毒性试验所得的最大未观察到有害作用剂量评价某种受试物时,如果最大未观察到有害作用剂量()者,则可考虑允许使用于食品。
为保证工件各相关面的位置精度,减少夹具的设计与制造成本,应尽量采用()原则。
患者,男,28岁。主诉乏力,并且排酱油色尿,伴贫血。体检:皮肤黏膜和巩膜轻度黄染,肝脾肋下未及,网织红细胞10%,蔗糖溶血试验(+)。该患者最可能的诊断是
与tRNA反密码子CAG配对的mRNA密码子是()
根据中毒症状,中毒的原因最可能是你采取何种措施进行急救
按照( )分类,工程保险可分为建筑工程一切险、安装工程一切险和预期利益损失险。
根据《汉堡规则》,对件杂货承运人的责任期间为()。
学校体育活动的基本特征是()
设有一个二维数组A[m][n]在存储中按行优先存放(数组的每一个元素占一个窄间),假设A[0][0]存放位置在780(10),A[4][6]存放位置在1146(10),则A[6][20]存放在()位置(其中(10)、表明用十进制数表示)。
A、Hethinkssheboughtsomethingforheraunt.B、Hethinksshemighthavebeenthere.C、Hethinksshewasthereonlybriefly.D、
最新回复
(
0
)