軟件設(shè)計師案例分析當天每日一練試題地址:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4
往期軟件設(shè)計師每日一練試題匯總:m.xiexiliangjiufa.com/class/27/e4_1.html
軟件設(shè)計師案例分析每日一練試題(2024/10/10)在線測試:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4&day=2024/10/10
點擊查看:更多軟件設(shè)計師習題與指導(dǎo)
軟件設(shè)計師案例分析每日一練試題內(nèi)容(2024/10/10)
閱讀下列說明和C代碼,回答問題1至問題3,將解答填入答題紙的對應(yīng)欄內(nèi)。
【說明】
某工程計算中要完成多個矩陣相乘(鏈乘)的計算任務(wù)。
兩個矩陣相乘要求第一個矩陣的列數(shù)等于第二個矩陣的行數(shù),計算量主要由進行乘法運算的次數(shù)決定。采用標準的矩陣相乘算法,計算A
m×n*B
n×p,需要m*n*p次乘法運算。
矩陣相乘滿足結(jié)合律,多個矩陣相乘,不同的計算順序會產(chǎn)生不同的計算量。以矩陣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次乘法運算??梢姴煌挠嬎沩樞?qū)τ嬎懔坑泻艽蟮挠绊憽?br />矩陣鏈乘問題可描述為:給定n個矩陣
,矩陣Ai的維數(shù)為pi-1×pi,其中i = 1,2,….n。確定一種乘法順序,使得這n個矩陣相乘時進行乘法的運算次數(shù)最少。
由于可能的計算順序數(shù)量非常龐大,對較大的n,用蠻力法確定計算順序是不實際的。經(jīng)過對問題進行分析,發(fā)現(xiàn)矩陣鏈乘問題具有最優(yōu)子結(jié)構(gòu),即若A1*A2*…*An的一個最優(yōu)計算順序從第k個矩陣處斷開,即分為A1*A2*….Ak和Ak+1*Ak+2*…*An兩個子問題,則該最優(yōu)解應(yīng)該包含A1*A2*…*Ak的一個最優(yōu)計算順序和Ak+1*Ak+2*…An的一個最優(yōu)計算順序。據(jù)此構(gòu)造遞歸式,

其中,cost[i][j]表示Ai+1*Ai+2*...Aj+1的最優(yōu)計算的計算代價。最終需要求解cost[0][n-1]。
【C代碼】
算法實現(xiàn)采用自底向上的計算過程。首先計算兩個矩陣相乘的計算量,然后依次計算3個矩陣、4個矩陣、…、n個矩陣相乘的最小計算量及最優(yōu)計算順序。下面是算法的C語言實現(xiàn)。
(1)主要變量說明
n:矩陣數(shù)
seq[]:矩陣維數(shù)序列
cost[][]:二維數(shù)組,長度為n*n,其中元素cost[i][j]表示Ai+1*Ai+2*…Aj+1的最優(yōu)計算的計算代價
trace[][]:二維數(shù)組,長度為n*n,其中元素trace[i][j]表示Ai+1*Ai+2*Aj+1的最優(yōu)計算對應(yīng)的劃分位置,即k
(2)函數(shù)cmm
#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 for(p=1;p for(i=0; (1) ;i++){
(2) ;
tempCost = -1;
for(k = i;k temp= (3) ;
if(tempCost==-1||tempCost>temp){
tempCost = temp;
(4) ;
}
}
cost[i][j] = tempCost;
trace[i][j] = tempTrace;
}
}
return cost[0][n-1];
}
【問題1】(8分)
根據(jù)以上說明和C代碼,填充C代碼中的空(1)~(4)。
【問題2】(4分)
根據(jù)以上說明和C代碼,該問題采用了 (5) 算法設(shè)計策略,時間復(fù)雜度 (6) 。(用O符號表示)
【問題3】(3分)
考慮實例n=6,各個矩陣的維數(shù):A1為5*10,A2為10*3,A3為3*12,A4為12*5,A5為5*50,A6為50*6,即維數(shù)序列為5,10,3,12,5,50,6。則根據(jù)上述C代碼得到的一個最優(yōu)計算順序為 (7) (用加括號方式表示計算順序),所需要的乘法運算次數(shù)為 (8) 。
信管網(wǎng)試題答案與解析:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4&day=2024/10/10
信管網(wǎng)考友試題答案分享:
信管網(wǎng)1232***********:
<br /><img src="http://pic.cnitpm.com/upload/2022/09/tbimg/09-19/1663595813.jpg" />
信管網(wǎng)試題答案與解析:
m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4&day=2024/10/10
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請以權(quán)威部門公布的內(nèi)容為準!
信管網(wǎng)致力于為廣大信管從業(yè)人員、愛好者、大學生提供專業(yè)、高質(zhì)量的課程和服務(wù),解決其考試證書、技能提升和就業(yè)的需求。
信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,教材和資料參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學員考試保駕護航。面授、直播&錄播,多種班型靈活學習,滿足不同學員考證需求,降低課程學習難度,使學習效果事半功倍。