矩陣乘法(Strassen演算法 C 實現)

2021-07-12 03:10:07 字數 553 閱讀 6955

問題:請程式設計實現矩陣乘法,並考慮當矩陣規模較大時的優化方法。

思路一:暴力解法

直接根據數學中矩陣乘法的計算公式:

計算目標矩陣中各個元素的值。

//思路一:暴力解法

//矩陣乘法,3個for迴圈搞定

void mul(int** matrixa, int** matrixb, int** matrixc)

}

}

}

思路二:

strassen演算法

詳情請看:

總結:矩陣乘法一般意義上還是選擇:樸素的方法

(暴力解法),只有當矩陣階數很大(稠密)時,才會選擇

strassen演算法。

strassen矩陣乘法 Strassen矩陣乘法

求矩陣a,b相乘的結果c 直接根據矩陣乘法的定義來遍歷計算。c 語言 void matrixmul int a,int b,int c,int m,int b,int n void test3 int b 3 2 int c 2 2 matrixmul int a,int b,int c,2,3,2...

矩陣乘法 之 strassen 演算法

一般情況下矩陣乘法需要三個for迴圈,時間複雜度為o n 3 現在我們將矩陣分塊如圖 來自mit演算法導論 一般演算法需要八次乘法 r a e b g s a f b h t c e d g u c f d h strassen將其變成7次乘法,因為大家都知道乘法比加減法消耗更多,所有時間複雜更高!...

Strassen矩陣乘法

strassen矩陣乘法 strassen矩陣乘法是通過遞迴實現的,它將一般情況下二階矩陣乘法 可擴充套件到 階,但strassen矩陣乘法要求 是 的冪 所需的8次乘法降低為7次,將計算時間從o ne3 降低為o ne2.81 矩陣c ab,可寫為 c11 a11b11 a12b21 c12 a1...