用C++輕鬆記住Strassen矩陣方程
這是一種基於分治法的矩陣乘法演算法。它用於乘以兩個相同大小的矩陣。
求兩個矩陣的乘積:

Strassen演算法透過簡化乘法來減少乘法的開銷。
以下是使用Strassen演算法進行的乘法:

M1 = a*(f - h)
M2 = (a + b)*h
M3 = (c + d)*e
M4 = d*(g - e)
M5 = (a + d)*(e + h)
M6 = (b - d)*(g + h)
M7 = (a - c)*(e + f)
這很容易記住,並且可以解碼演算法程式碼。為此,我們有一些規則,首先記住這六點:
- 對於M的前四個值,使用AHED。
- 對於M的第五個值,使用對角線相乘。
- 對於M的第六個值,使用最後一個CR(矩陣1的最後一列和矩陣2的最後一行)。
- 對於M的第七個值,使用第一個CR(矩陣1的第一列和矩陣2的第一行)。
- 在考慮行的元素時將它們相加,在考慮列的元素時將它們相減。
- 之後使用相鄰值更新值。
使用這些方法,我們可以輕鬆記住這些值。
廣告
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP