首页
登录
从业资格
已知矩阵Am*n和Bn*p相乘的时间复杂度为O(mnp)。矩阵相乘满足结合律,如
已知矩阵Am*n和Bn*p相乘的时间复杂度为O(mnp)。矩阵相乘满足结合律,如
免费题库
2022-08-02
37
问题
已知矩阵Am*n和Bn*p相乘的时间复杂度为O(mnp)。矩阵相乘满足结合律,如三个矩阵A、B、C相乘的顺序可以是(A*B)*C也可以是A*(B*C)。不同的相乘顺序所需进行的乘法次数可能有很大的差别。因此确定n个矩阵相乘的最优计算顺序是一个非常重要的问题。已知确定n个矩阵A1A2......An相乘的计算顺序具有最优子结构,即A1A2......An的最优计算顺序包含其子问题A1A2......Ak和Ak+1Ak+2……An(1≤k<n)的最优计算顺序。可以列出其递归式为:
其中,Ai的维度为pi-1*pi,m[i,j]表示AiAi+1……Aj最优计算顺序的相乘次数。先采用自底向上的方法求n个矩阵相乘的最优计算顺序。则求解该问题的算法设计策略为( )。算法的时间复杂度为( ),空间复杂度为( )。给定一个实例,(p0p1……p5)=(20,15,4,10,20,25),最优计算顺序为( )。 问题1选项 A.分治法 B.动态规划法 C.贪心法 D.回溯法问题2选项 A.O(n2) B.O(n2lgn) C.O(n3) D.O(2^n)问题3选项 A.O(n2) B.O(n2lgn) C.O(n3) D.O(2^n)问题4选项 A.(((A1×A2)×A3)×A4)×A5 B.A1×(A2×(A3×(A4×A5))) C.((A1×A2)×A3)× (A4×A5) D.(A1×A2) ×( (A3×A4)×A5)
选项
答案
BCAD
解析
第一空:本题提到“已知确定n个矩阵A1A2......An相乘的计算顺序具有最优子结构,即A1A2......An的最优计算顺序包含其子问题A1A2......Ak和Ak+1Ak+2……An(1≤k)的最优计算顺序”,即规模为n的问题的解与较小规模为k的问题的解有关,具有最优子结构,并且提到“m[i,j]表示AiAi+1……Aj最优计算顺序的相乘次数”即,用中间数组m[i,j]存放中间子结果,所以本题描述的算法策略是动态规划法,特点是具有最优子结构,并且会利用中间表记录中间结果,最后利用查表得到最优解。
第二空:题干给出“已知矩阵Am*n和Bn*p相乘的时间复杂度为O(mnp)”,即矩阵乘法的实现过程,可以简单理解为3层嵌套循环,所以时间复杂度为O(n^3)。
下面给出一个简单的矩阵乘法的代码段(只列出动态规划过程,具体变量声明已忽略):
int cmm(int n,int p[]){
//n为矩阵个数,p[]为维度记录,本题n=5,p[]={20,15,4,10,20,25}
for(t=1;t for(i=0; i j=i+t ;
tempCost = -1;
for(k = i;k temp= m
[k]+m[k+1][j]+p
*p[k+1]*p[j+1] ;
if(tempCost==-1||tempCost>temp){
tempCost = temp;
tempTrace=k ;
}
}
m
[j] = tempCost; //m[][]:二维数组,长度为n*n,其中元素m
[j]表示Ai+1*Ai+2*…Aj+1的最优计算的计算代价
trace
[j] = tempTrace; // trace[][]:二维数组,长度为n*n,其中元素trace
[j]表示Ai+1*Ai+2*Aj+1的最优计算对应的划分位置,即k
}
}
return m[0][n-1]; //返回值为最优计算的计算代价,即乘法的次数
}
第三空:本题在计算过程中,需要临时存储空间存放中间结果m[][],二维数组占据空间为n*n,即空间复杂度为O(n^2)。
第四空:可以按照选项直接计算出相应乘法次数进行判断。
给定一个实例,(p0p1……p5)=(20,15,4,10,20,25), 表示A1(20×15),A2(15×4),A3(4×10),A4(10×20),A5(20×25)。
选项A:(((A1×A2) ×A3) ×A4) ×A5,根据括号计算顺序,先计算A1×A2=A12(20×4),乘法次数为20×15×4=1200;然后计算A12×A3=A123(20×10),乘法次数为20×4×10=800;接着计算A123×A4=A1234(20×20),乘法次数为20×10×20=4000;最后计算A1234×A5=A12345(20×25),乘法次数为20×20×25=10000。
A选项乘法次数为1200+800+4000+10000=16000次;
选项A1×(A2×(A3×(A4×A5))) ,根据括号计算顺序,先计算A4×A5=A45(10×25),乘法次数为10×20×25=5000;然后计算A3×A45=A345(4×25),乘法次数为4×10×25=1000;接着计算A2×A345=A2345(15×25),乘法次数为15×4×25=1500;最后计算A1×A2345=A12345(20×25),乘法次数为20×15×25=7500。
B选项乘法次数为5000+1000+1500+7500=15000次;
C:((A1×A2)×A3)× (A4×A5) ,根据括号计算顺序,先计算A1×A2=A12(20×4),乘法次数为20×15×4=1200;然后计算A12×A3=A123(20×10),乘法次数为20×4×10=800;接着计算A4×A5=A45(10×25),乘法次数为10×20×25=5000;最后计算A123×A45=A12345(20×25),乘法次数为20×10×25=5000。
C选项乘法次数为1200+800+5000+5000=12000次;
选项D:(A1×A2) ×( (A3×A4)×A5) ,根据括号计算顺序,先计算A1×A2=A12(20×4),乘法次数为20×15×4=1200;然后计算A3×A4=A34(4×20),乘法次数为4×10×20=800;接着计算A34×A5=A345(4×25),乘法次数为4×20×25=2000;最后计算A12×A345=A12345(20×25),乘法次数为20×4×25=2000。
D选项乘法次数为1200+800+2000+2000=6000次;
D选项为最优计算顺序。
转载请注明原文地址:https://tihaiku.com/congyezige/2409602.html
本试题收录于:
中级 软件设计师题库软件水平考试初中高级分类
中级 软件设计师
软件水平考试初中高级
相关试题推荐
甲、乙两人在同一时间就同样的发明创造提交了专利申请,专利局将分别向各申请人通报有
在系统转换的过程中,旧系统和新系统并行工作一段时间,再由新系统代替旧系统的策略称
在系统转换的过程中,旧系统和新系统并行工作一段时间,再由新系统代替旧系统的策略称
某项目包含的活动如下表所示,完成整个项目的最短时间为()周。不能通过缩短活动(
某企业部门关系模式Dept(部门号,部门名,负责人工号,任职时间),员工关系模式
某企业部门关系模式Dept(部门号,部门名,负责人工号,任职时间),员工关系模式
某小区由于建设时间久远,停车位数量无法满足所有业主的需要,为公平起见,每年进行一
MPEG视频中的时间冗余信息可以采用_()_的方法来进行压缩编码。A.帧间预测
若指令流水线把一条指令分为取指、分析和执行三部分,且三部分的时间分别是t取指=2
中断响应时间是指_()_。A.从中断处理开始到中断处理结束所用的时间 B.从
随机试题
WorldHistory[img]2014m9s/ct_etoefm_etoeflistz_0494_20149[/img][br]Listento
Flavi:What’syourjob,Terry?Terry:______.A、I’manactorB、IworkinLondon
Ifyouare【T1】______atafancyplace,youmightfindamintorsomelittle
()负责施工现场标牌、警示标识的保护和实施落实工作。A.设计单位 B.施
工资推进的通货膨胀属于()。A.需求拉动型通货膨胀 B.成本推动型通货膨
某单位员工42.5%为本科以下学历,37.25%为本科学历,硕士研究生及以上学历
公文质量在思想内容上应该做到()。A.政策性强 B.时限性强 C.科学性强
以下因素与非肌层浸润性膀胱癌的复发密切相关,除了A.肿瘤复发频率 B.肿瘤位置
女,18岁。心慌、怕热、多汗、体重下降3个月,双手有细颤,突眼不明显,甲状腺II
在网络计划中,工作的总时差是指在不影响()的前提下,该工作可以利用的机动时间。A
最新回复
(
0
)