矩陣相乘:施特拉森算法

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

 

         本文爲《編程之法 面試和算法心得》讀書筆記。

相關文章
相關標籤/搜索