我很難得到分而治之的矩陣乘法運行。據我瞭解,你分割尺寸爲n×n的矩陣轉換成象限(每個象限爲n/2),然後你做:分而治之矩陣乘法
C11 = A11⋅ B11 + A12 ⋅ B21
C12 = A11⋅ B12 + A12 ⋅ B22
C21 = A21 ⋅ B11 + A22 ⋅ B21
C22 = A21 ⋅ B12 + A22 ⋅ B22
我的分而治之的輸出實在是大,我無法搞清楚因爲我對遞歸不太好。
示例輸出:
原基質A:
4 0 4 3
5 4 0 4
4 0 4 0
4 1 1 1
甲x一個
古典:
44 3 35 15
56 20 24 35
32 0 32 12
29 5 21 17
分而治之:
992 24 632 408
1600 272 720 1232
512 0 512 384
460 17 405 497
有人能告訴我我做錯了分而治之嗎?我所有的矩陣都是int[][]
,傳統的方法是傳統的3用於循環矩陣乘法
爲什麼你想要做矩陣乘法這樣?如果您對原始性能感興趣,可以使用數字庫,我相信它的速度會比您可以在合理的時間內自行編寫的速度更快。如果您有興趣瞭解數值計算,我將從循環平鋪開始(維基百科有一篇文章),而不是遞歸解決方案。 – Samsdram 2011-01-31 02:03:53
其作業。 – Raptrex 2011-01-31 02:11:36