行列の乗算

3151 ワード

問題の説明
2 Dマトリクスarr 1とarr 2を入力し、arr 1にarr 2を乗じた結果の関数を返します.
せいげんじょうけん
行列arr 1、arr 2の行および列の長さは、2または100を超えない.
行列arr 1、arr 2の要素は、−10または20以下の自然数である.
乗算できる配列のみ.
分かりやすい正斜角行列3 x 3で考えることにした.
arr1		arr2		arr1 x arr2
[a,b,c]		[1,2,3]		[1a+4b+7c, 2a+5b+8c, 3a+6b+9c]
[d,e,f]		[4,5,6]		[1d+4e+7f, 2d+5e+8f, 3d+6e+9f]
[g,h,i]		[7,8,9]		[1g+4h+7i, 2g+5h+8i, 3g+6h+9i]
数学の概念に基づいて
1.arr 1の行は
2.arr 2の10を乗じた位置.
arr 1の行の要素はarr 2の列とともに移動する必要があります.
def solution(arr1, arr2):
    answer = []
    for i in range(len(arr1)):
        result = []
        for j in range(len(arr2[0])):
            temp = 0
            for k in range(len(arr2)):
                temp += arr1[i][k]*arr2[k][j]
            result.append(temp)
        answer.append(result)
    return answer