[プログラマ]Lv 2行列の積


リンク:練習問題>行列の乗算
プール1 numpy(python)の使用
import numpy as np

def solution(arr1, arr2):
    return np.dot(np.array(arr1), np.array(arr2)).tolist()
プール2 numpy使用❌(python)
def solution(arr1, arr2):
    answer = [[0] * len(arr2[0]) for _ in range(len(arr1))] 
    
    for i in range(len(answer)):
        for j in range(len(answer[0])):
            result = 0
            for val1, val2 in zip(arr1[i], [arr2[k][j] for k in range(len(arr2))]):
                result += val1 * val2
            answer[i][j] = result
    
    return answer
説明:
  • 結果行列の大きさ:A行列(a,b)*B行列(c,d)=(a,d)
  • 行列乗算:結果行列i行j列値=(A行列i行各要素*B行列j行各要素)の和