P1=A(F-H) P2=(A+B)H面试
P3=(C+D)E P4=D(G-E)算法
P5=(A+D)(E+H) P6=(B-D)(G+H)编程
P7=(A-C)(E+F)读书笔记
矩阵A和B相乘表示为:
AB=[ P5+P4-P2+P6 P1+P2]
[P3+P4 P1+P5-P3-P7]
将A和B以及它们相乘的结果矩阵C分解:
A=[A11 A12] B=[B11 B12] C=[C11 C12]
[A21 A22] [B21 B22] [C21 C22]
咱们要求C11,C12,C21,C22:
C11=A11B11+A12B21 C12=A11B12+A12B22
C21=A21B11+A22B21 C22=A21B12+A22B22
咱们再定义7个矩阵:
M1=(A11+A22)(B11+B22) M2=(A21+A22)B11
M3=A11(B12-B22) M4=A22(B21-B11)
M5=(A11+A12)B22 M6=(A21-A11)(B11+B12)
M7=(A12-A22)(B21+B22)
所以:
C11=M1+M4-M5+M7
C12=M3+M5
C21=M2+M4
C22=M1-M2+M3+M6
本文为《编程之法 面试和算法心得》读书笔记。