【問題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!