我很难得到分而治之的矩阵乘法运行。据我了解,你分割尺寸为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