兩個矩陣相乘算法


本來是處理兩個矩陣的連乘求如何加括號使得中間的運算次數最少的問題,但是突然想到實現一下如何求連個矩陣連乘的算法,就實現了一下,挺簡單的:

注意程序圍繞的思想:
1.兩個矩陣相乘,前一個矩陣的列等於一個矩陣的行
2.拿前一個矩陣的每一行,依次的乘以后一個矩陣的每一列
[cpp] view plain copy

    #include  
    //注意矩陣連乘需要滿足的是:  
    //前一個矩陣的列等於后一個矩陣的行   
    using namespace std;  
    int main(){  
        int a[3][1] = {  
        {1},  
        {2},  
        {3}  
        };  
        int b[1][3] = {{1,2,3}};  
        int c[3][3];  
        int temp;  
        for (int i=0; i<3; i ){ //拿出數組a的每一行   
            for (int z=0; z<3; z ){ //分別和數組b的每一列進行相乘  
                int sum = 0;  //因為每次乘以數組a的每一列都會產生數組c中的一個元素,所以sum要放在這里   
                for(int j=0; j<1; j ){  
                    sum = a[i][j] * b[j][z];  
                }  
                c[i][z] = sum;    
             
         
          
        for (int i=0; i<3; i ){  
            for (int j=0; j<3; j )  
                cout << c[i][j];   
            cout << endl;   
        }  
    }



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM