行列の乗算


問題の説明


2 Dマトリクスarr 1とarr 2を入力し、arr 1にarr 2を乗じた結果の関数を返します.

せいげんじょうけん

  • 行列arr 1、arr 2の行および列の長さは、2または100より大きい.
  • 行列arr 1,arr 2の要素は−10または20以下の自然数である.
  • に乗算された配列しか与えられません.
  • I/O例


    arr1arr2return[[1, 4], [3, 2], [4, 1]][[3, 3], [3, 3]][[15, 15], [15, 15], [15, 15]][[2, 3, 2], [4, 2, 4], [3, 1, 4]][[5, 4, 3], [2, 4, 1], [3, 1, 1]][[22, 22, 11], [36, 28, 18], [29, 20, 14]]

    👤 私の答え

    function solution(arr1, arr2) {
      let answer = []
    
      for(let i = 0; i < arr1.length; i++){
        answer.push([]) // 2차원배열 
        for(let j = 0; j < arr1[0].length; j++){
          answer[i].push(0) 
          for(let k=0; k< arr2[0].length; k++){
            answer[i][j] += arr1[i][k] * arr2[k][j];
          }
        }
      }
      return answer
    }
     console.log(solution([[2, 3, 2], [4, 2, 4], [3, 1, 4]], [[5, 4, 3], [2, 4, 1], [3, 1, 1]])); //[[22, 22, 11], [36, 28, 18], [29, 20, 14]]
    の最後の部分
    時間をかけて問題の法則を見つけた.今でも2次元配列を使うのは難しいのですが・・・