国产女主播一区二区|绝不放过你电影在线观看完整版|欧美寡妇性猛交ⅹxxx|谍战片电视剧免费观看电视剧大全在线观看,av片国产,国产精品欧美久久久久久,免费观看久久久

軟題庫 學習課程
當前位置:信管網(wǎng) >> 在線考試中心 >> 軟件設計師題庫 >> 試題查看
試卷年份2022年上半年
試題題型【分析簡答題】
試題內(nèi)容

 某工程計算中經(jīng)常要完成多個矩陣相乘(鏈乘)的計算任務,對矩陣相乘進行以下說明。
(1)兩個矩陣相乘要求第一個矩陣的列數(shù)等于第二個矩陣的行數(shù),計算量主要由進行乘法運算的次數(shù)決定,假設采用標準的矩陣相乘算法,計算Amxn*Bnxp需要m*n*p次行乘法運算的次數(shù)決定、乘法運算,即時間復雜度為O(m*n*p)。
(2)矩陣相乘滿足結(jié)合律,多個矩陣相乘時不同的計算順序會產(chǎn)生不同的計算量。以矩陣A15×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個矩陣,對較大的n,可能的計算順序數(shù)量非常龐大,用蠻力法確定計算順序是不實際的。經(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)解應該包含 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)計算順序。下面是該算法的語言實現(xiàn)。
(1) 主要變量說明
n:矩陣數(shù)
seq[]:矩陣維數(shù)序列
cost[i][j]:二維數(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)計算順序?qū)膭澐治恢?,即k。

(2)函數(shù)cmm
#define N100
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<n;i++){ cost[i][i] = 0;} 
     for(p=1;p<n;p++){ 
        for(i=0; i<n-p;i++){
            (1)  ; 
            tempCost = -1; 
            for(k = i;  (2) ;k++){    
                temp=  (3)  ; 
                if(tempCost==-1 || tempCost>temp){                
                    tempCost = temp;
                    tempTrace=k; 
                } 
            } 
            cost[i][j] = tempCost; 
            (4)  ;
        } 
    } 
    return cost[0][n-1]; 

【問題1】(8分)
根據(jù)以上說明和C代碼,填充C代碼中的空(1)~(4)。
【問題2】(4分)
根據(jù)以上說明和C代碼,該問題采用了(5)算法設計策略,時間復雜度為(6)(用O符號表示)。
【問題3】(3分)
考慮實例n=4,各個矩陣的維數(shù)為A1為15*5,A2為5*10,A3為10*20,A4為20*25,即維度序列為15,5,10,20和25。則根據(jù)上述C代碼得到的一個最優(yōu)計算順序為(7)(用加括號方式表示計算順序),所需要的乘法運算次數(shù)為 (8)。 



查看答案

相關試題



更多試題