当前位置: 首页icon 51CTO软考 > 软考资讯 >考试科目 >2019年5月 软件设计师 上午题之二十一

2019年5月 软件设计师 上午题之二十一

作者:mb64e70aac116d82023-11-28 01:00:14
备考咨询 刷题指导
添加专属学姐
下载资料 2024上半年软考备考资料+考试大纲
下载按钮 下载
引号

摘要:对于【软件设计师】软考考试而言,真题无疑是最重要的学习资料之一。在软考备考过程中,吃透真题、掌握真题所考知识点、熟悉真题的出题思路,对我们提升分数的效果是最明显的,通过对真题的反复练习,还可以查漏补缺。今天,给大家带来【2019年5月 软件设计师 上午题】部分真题的详解,一起来看看吧~1、已知阳阵 Am*n和 Bn*p 相乘的时间复杂度为 O(mnp)矩阵相乘满足结合律

引号
摘要:对于【软件设计师】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2019年5月 软件设计师 上午题】部分试题的详解,一起来看看吧~



1、已知阳阵 Am*n和 Bn*p 相乘的时间复杂度为 O(mnp)矩阵相乘满足结合律,如三个矩阵A、B、C 相乘的顺序可以是(A*B)*C),也可以是A*(B*C).不同的相乘序所需进行的乘法次数可能有很大的差别,因此确定n 个矩阵相乘的最优计算顺序是一个非常重要的问题。已知确定n 个短阵 A,A2........An 相乘的计算顺序具有最优子结构,即 A1A2..........An 的最优计算顺序包含其子问题A1A2.......Ak和 Ak+1Ak+2.......An(<=kcn)的最优计算顺序。可以列出其递归式为其中,A 的维度为 pi-1*pi,m【i,j】,表示 AiAi+1…A j最优计算顺字的相乘次数,先釆用自底向上的方法求n 个矩阵相乘的最优计算顺序。则该问题的算法设计策略为(请作答此空),算法的时间复杂度为( ),空间复杂度为( )给定一个实例,(P0Pi........P5)=(20.15.4.10.20.25)最优计算顺序为( )
A、 分治法
B、 动态规划法
C、 贪心法
D、 回溯法

答案:B
答题解析:题干提到该问题具有最优子结构,并且由m[i,j]表示 AiAi+1…A j最优计算顺字的相乘次数,因此可判断该算法为动态规划法。

2、已知矩阵 Am*n和 Bn*p 相乘的时间复杂度为 O(mnp)矩阵相乘满足结合律,如三个矩阵A、B、C 相乘的顺序可以是(A*B)*C),也可以是A*(B*C).不同的相乘序所需进行的乘法次数可能有很大的差别,因此确定n 个矩阵相乘的最优计算顺序是一个非常重要的问题。已知确定n 个短阵 A,A2........An 相乘的计算顺序具有最优子结构,即 A1A2..........An 的最优计算顺序包含其子问题A1A2.......Ak和 Ak+1Ak+2.......An(<=kcn)的最优计算顺序。可以列出其递归式为其中,A 的维度为 pi-1*pim【i,j】,表示 AiAi+1…A j最优计算顺字的相乘次数,先釆用自底向上的方法求n 个矩阵相乘的最优计算顺序。则该问题的算法设计策略为( ),算法的时间复杂度为(请作答此空),空间复杂度为( )给定一个实例,(POPi........P5)=(20.15.4.10.20.25)最优计算顺序为( )
A、 O(n^2)
B、 O(n^2lgn)
C、 O(n^3)
D、 O(2^n)

答案:C
答题解析:

矩阵链乘法:

一个给定的矩阵序列A1A2...An计算连乘乘积,有不同的结合方法,并且在结合时,矩阵的相对位置不能改变,只能相邻结合。根据矩阵乘法的公式,10*100和100*5的矩阵相乘需要做10*100*5次标量乘法。那么对于维数分别为10*100、100*5、5*50的矩阵A、B、C,用(A*B)*C来计算需要10*100*5 + 10*5*50 =7500次标量乘法;而A*(B*C)则需要100*5*50+10*100*50=75000次标量乘法。

根据题干有A1-A5五个矩阵,分别为:20*15、15*4、4*10、10*20、20*25,分别带入65题各个选项,得到选项D是计算次数最少的选项。

具体计算结果为:

选项A:A1*A2=20*15*4=1200,(A1*A2)*A3)=20*4*10=800,(((A1*A2)*A3)*A4)=20*10*20=4000,(((A1*A2)*A3)*A4)*A5=20*20*25=10000,总的计算次数为1200+800+4000+10000=16000次。

选项B:A4*A5=10*20*25=5000,A3*(A4*A5)=4*10*25=1000,A2*(A3*(A4*A5))=15*4*25=1500,A1*(A2*(A3*(A4*A5)))=20*15*25=7500,总的计算次数为:5000+1000+1500+7500=15000次。

选项C:A1*A2=20*15*4=1200,(A1*A2)*A3)=20*4*10=800,A4*A5=10*20*25=5000,

((A1*A2)*A3)*(A4*A5)=20*10*25=5000,总的计算次数为1200+800+5000+5000=12000次。

选项D:A1*A2=20*15*4=1200,A3*A4=4*10*20=800,(A3*A4)*A5=4*20*25=2000,

(A1*A2)*((A3*A4)*A5)=20*4*25=2000,总的计算次数为1200+800+2000+2000=6000次。

该算法的,pi−1pkpj的值需要三重循环解决,因此时间复杂度为O(n^3),空间复杂度为O(n^2)。




3、已知矩阵 Am*n和 Bn*p 相乘的时间复杂度为 O(mnp)矩阵相乘满足结合律,如三个矩阵A、B、C 相乘的顺序可以是(A*B)*C),也可以是A*(B*C).不同的相乘序所需进行的乘法次数可能有很大的差别,因此确定n 个矩阵相乘的最优计算顺序是一个非常重要的问题。已知确定n 个短阵 A,A2........An 相乘的计算顺序具有最优子结构,即 A1A2..........An 的最优计算顺序包含其子问题A1A2.......Ak和 Ak+1Ak+2.......An(<=kcn)的最优计算顺序。可以列出其递归式为其中,A 的维度为 pi-1*pim【i,j】,表示 AiAi+1…A j最优计算顺字的相乘次数,先釆用自底向上的方法求n 个矩阵相乘的最优计算顺序。则该问题的算法设计策略为( ),算法的时间复杂度为( ),空间复杂度为(请作答此空)给定一个实例,(POPi........P5)=(20.15.4.10.20.25)最优计算顺序为( )
A、 O(n^2)
B、 O(n*2lgn)
C、 O(n^3)
D、 O(2n)

答案:A
答题解析:

矩阵链乘法:

一个给定的矩阵序列A1A2...An计算连乘乘积,有不同的结合方法,并且在结合时,矩阵的相对位置不能改变,只能相邻结合。根据矩阵乘法的公式,10*100和100*5的矩阵相乘需要做10*100*5次标量乘法。那么对于维数分别为10*100、100*5、5*50的矩阵A、B、C,用(A*B)*C来计算需要10*100*5 + 10*5*50 =7500次标量乘法;而A*(B*C)则需要100*5*50+10*100*50=75000次标量乘法。

根据题干有A1-A5五个矩阵,分别为:20*15、15*4、4*10、10*20、20*25,分别带入65题各个选项,得到选项D是计算次数最少的选项。

具体计算结果为:

选项A:A1*A2=20*15*4=1200,(A1*A2)*A3)=20*4*10=800,(((A1*A2)*A3)*A4)=20*10*20=4000,(((A1*A2)*A3)*A4)*A5=20*20*25=10000,总的计算次数为1200+800+4000+10000=16000次。

选项B:A4*A5=10*20*25=5000,A3*(A4*A5)=4*10*25=1000,A2*(A3*(A4*A5))=15*4*25=1500,A1*(A2*(A3*(A4*A5)))=20*15*25=7500,总的计算次数为:5000+1000+1500+7500=15000次。

选项C:A1*A2=20*15*4=1200,(A1*A2)*A3)=20*4*10=800,A4*A5=10*20*25=5000,

((A1*A2)*A3)*(A4*A5)=20*10*25=5000,总的计算次数为1200+800+5000+5000=12000次。

选项D:A1*A2=20*15*4=1200,A3*A4=4*10*20=800,(A3*A4)*A5=4*20*25=2000,

(A1*A2)*((A3*A4)*A5)=20*4*25=2000,总的计算次数为1200+800+2000+2000=6000次。

该算法的,pi−1pkpj的值需要三重循环解决,因此时间复杂度为O(n^3),空间复杂度为O(n^2)。



查看完整试题>>>


免费刷题报考资讯 机考模拟 学习群