下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

2022上半年软件设计师下午真题(四)

作者:匿名     来源: 软考点击数:1395发布时间: 2022-05-31 21:26:38

标签: 2022上半年软件设计师下午真题2022年软件设计师下午真题2022上半年软件设计师真题

软考,您想通过吗?一次通过才是硬道理

  为帮助考生估分,课课家小编为大家整理了2022上半年软件设计师下午真题(四),希望对大家估分会有帮助。

  为方便广大考生考后估分对答案,课课家软考学院老师特向广大学员和网友搜集整理了2022上半年软件设计师下午真题(四),供大家参考。课课家软考学院老师也将在考后进行真题答案解析,想知道答案和解析的考生请进入课课家在线题库,估算自己的考试成绩,敬请广大考生关注。

  试题四(共15分)

  阅读下列说明和C代码,回答问题至问题3,将解答写在答题纸的对应栏内。

  【说明】

  工程计算中经常要完成多个矩阵相乘的计算任务,对矩阵相乘进行以下说明。

  (1)两个矩阵相乘要求第一个矩阵的列数等于第二个矩阵的行数,计算量主要由进行乘法运算的次数决定,假设采用标准的矩阵相乘算法,计算Amxn*Bxp"需要m*n*p次行乘法运算的次数决定、乘法运算,即时间复杂度为O(m*n*p)。

  (2)矩阵相乘满足结合律,多个矩阵相乘时不同的计算顺序会产生不同的计算量。以矩阵AI5×100,A2100*8,A38x50三个矩阵相乘为例,若按(A1*A2)*A3计算,则需要进行5*100*8+5*8*50-6000次乘法运算,若按A1*(A2*A3)计算,则需要进行100*8*50+5*100*50=65000次乘法运算。

  矩阵链乘问题可描述为:给定n个矩阵对较大的,可能的计算顺序数量非常庞大,用蛮力法确定计算顺序是不实际的。经过对问题进行分析,发现矩阵链乘问题具有最优子结构,即若A1*A2**An的一个最优计算顺序从第k个矩阵处断开,即分为A1*A2*…*Ak和Ak+1*Ak+2**An两个子问题,则该最优解应该包含A1*A2**Ak的一个最优计算顺序和Ak+1*Ak+2**An的一个最优计算顺序。据此构造递归式:

  其中,cost【jj】表示Ai+1*Ai+2*Aj+1的最优计算的计算代价。最终需要求解cost[O][n-1]。【C代码】算法实现采用自底向上的计算过程。首先计算两个矩阵相乘的计算量,然后依次计算3个矩阵、4个矩阵、…、n个矩阵相乘的最小计算量及最优计算顺序。下面是该算法的语言实现:

  (1) 主要变量说明

  n:矩阵数

  seq[]:矩阵维数序列

  cos[i][j]:二维数组,长度为n*n,其中元素cost[i][j]表示Ai+1*Ai+2**Aj+1的最优的计算代价trace[][]:二维数组,长度为n*n,其中元素trace[i][j]表示Ai+1*Ai+2**Aj+1的最算对应的划分位置,即k(2)函数cmmine N100 cost[N[N]

  return cost[0][n-1];

  【问题1】(8分)

  根据以上说明和C代码,填充C代码中的空(1)~(4)。

  【问题2】(4分)

  根据以上说明和C代码,该问题采用了(⑤)算法设计策略,时间复为(6)(用O符号表)。

  【问题3】(3分)

  考虑实例n=4,各个矩阵的维数为A1为15*5,A2为5*10,A3为10*20,A4为20*25,即维度序列为15,5,10,20和25。则根据上述C代码得到的一个最优计算顺序为_(7)(用加括号方式表示计算顺序),所需要的乘法运算次数为(8)。

  >>>>>>点击进入软考报名专题

 

  相关推荐:2022上半年软件设计师下午真题及答案解析

赞(7)
踩(0)
分享到:
推荐查看
华为认证网络工程师 HCIE直播课视频教程