介紹了c語言實現矩陣相乘的常見演算法,並考慮優化程式,提高效能介紹了改進的演算法。
1.矩陣相乘
矩陣相乘應滿足的條件:
(1) 矩陣a的列數必須等於矩陣b的行數,矩陣a與矩陣b才能相乘;
(2) 矩陣c的行數等於矩陣a的行數,矩陣c的列數等於矩陣b的列數;
(3) 矩陣c中第i行第j列的元素等於矩陣a的第i行元素與矩陣b的第j列元素對應乘積之和,即.如
則:2. 常用矩陣相乘演算法
用a的第i行分別和b的第j列的各個元素相乘求和,求得c的第i行j列的元素,這種演算法中,b的訪問是按列進行訪問的,**如下:
3. 改進的演算法
矩陣a、b、c都按行(資料的儲存順序)訪問,以提高儲存器訪問效率,對於a的第i行中,第j列的元素分別和b的第j行的元素相乘,對於b中相同的列k在上述計算過程中求和,從而得到c第i行k列的資料,**如下:
這種演算法很容易轉到稀疏矩陣的相乘演算法。
4. 參考資料
(1)矩陣與矩陣相乘,http://jpkc.cec.edu.cn/jpkc/sx/mywebs/zsd/ch6/right6.2.4.htm
(2)嚴蔚敏 吳偉民,資料結構(c語言版),清華大學出版社,2008
(3)張晨曦 王志英等,計算機系統結構,高等教育出版社,2008
C語言實現矩陣相乘
分析 首先我們可以根據題意寫出函式頭。可以定為void matrixmutiply int m,int n,int p,long lmatrix1 max max long lmatrix2 max max long lmatrixresult max max 其中lmatrix1和lmatrix2...
C語言實現矩陣相乘
問題描述 編寫程式,可以實現m n矩陣和n p矩陣相乘。m,n,p均小於10,矩陣元素為整數。分析 首先我們可以根據題意寫出函式頭。可以定為void matrixmutiply int m,int n,int p,long lmatrix1 max max long lmatrix2 max max...
C語言實現大數相乘運算
本篇文章依然是有關tp 的內容。tp 主要思想 跳出整型浮點型的限制,定義新的容量比較大的資料型別,從而實現一些大數運算 看了一些網上的演算法和 也從前輩文章裡得到一些靈感,產出乙個用c語言實現大數相乘的演算法 廢話不多說,直接上演算法和 t entierlong multiplication t ...