【問題L16】:矩陣乘法。    [回前頁]

A[I][J]表示A為一個兩階陣列(TWO DIMENSIONAL ARRAY)它在數學上可以表示成一個I列J行的矩陣A:

         A(1,1)  A(1,2)………A(1,J)      ←…第1列

         A(2,1)  A(2,2)………  :         ←…第2列

           :       :     :     :            :

     A=    :       :   A(i,j)  :            :

           :       :     :     :            :

         A(I,1)  A(I,2)………A(I,J)      ←…第I列

           :       :           :

           第      第          第  其中A(i,j)1≦i≦I,1≦j≦J

           1      2          J

           行      行          行  其矩陣A之第i列,第j行元素

 

   現有另一矩陣B為P列Q行之矩陣,若A之行數J等於B之列數P,則可以定義出矩陣乘法A×B為

      C=A×B

 

       C(1,1)C(1,2)…C(1,Q)  A(1,1)A(1,2)…A(1,J)  B(1,1)B(1,2)…B(1,Q)

       C(2,1)C(2,2)…C(2,Q)  A(2,1)A(2,2)…A(2,J)  B(2,1)B(2,2)…B(2,Q)

   即    :     :        :  =  :     :        :  ×  :     :       :

         :     :        :      :     :        :      :     :       :

         :     :        :      :     :        :      :     :       :

       C(I,1)C(I,2)…C(I,Q)  A(I,1)A(I,2)…A(I,J)  B(P,1)B(P,2)…B(P,Q)

 

    C為I列Q行之矩陣,其第i列q行之元素C(i,q)可以下法求得:

   C(i,q)=A(i,1)•B(1,q)+A(i,2)•B(2,q)+……+A(i,j)•

   B(j,q)=ΣA(i,j)•B(j,q)

          ( 1≦j≦J )

 

   例如:

   C之第2列第3行元素C(2,3)=A(2,1)•B(1,3)+A(2,2)•B(2,3)+……+A(2,J)•B(J,3)

   請寫一程式INPUT I,J,P,Q,及A(1,1),A(1,2)…A(I,J),A(I,J),B(1,1),

   B(1,2)…B(P,Q)且若J=P則由螢光幕上印出C之所有元素C(1,1),C(1,2)…C(I,Q)

   ,否則印出ERROR!