プログラマJavaScript行列の積


プログラマLV 2行列の積


https://programmers.co.kr/learn/courses/30/lessons/12949

n/a言語


JavaScript

コード#コード#

function solution(arr1, arr2) {
  let answer = [];
  
  for(let i = 0; i < arr1.length; i++) {
    answer.push([]);
    for(let j = 0; j < arr2[0].length; j++) {
      let sum = 0;
      for(let n = 0; n < arr2.length; n++) {
        sum += (arr1[i][n] * arr2[n][j]);
      }
      answer[i].push(sum);
    }
  }
  return answer;
}

// j의 한계를 잘못 지정해서 진짜 1시간이 넘게 걸렸다.. j야😥

に答える


0.
まず行列の積を知る.
arr 1がmnのマトリクスarr 2がnkのマトリクスであると仮定する
arr 1の列数とarr 2の行数が等しい場合に乗算されます.
問題では乗算可能な場合のみが与えられる.
1.
arr 1の行をarr 2の列に乗算します.
iはarr 1の行となる.
jはarr 2の列となる.
nはarr 1の開きであり、arr 2の行でもある.
arr 1の各行にarr 2の各列を乗算し、答え行とする.
2.
💥index値で表されるので、1行ではなく0行で始まります.
arr 1[i][n]*arr 2[n][j]の値を加算します.
このときfor(i)内にはfor(j)があり,for(n)は最も奥であるため,nから所定の限界に増加する.
これによりsumはresponseのi行j列の値となり、response[i]に入れる
このプロセスをjのしきい値に繰り返すと、答え[i]の値が完了する.
3.
その後i値を増やし,2回のプロセスを繰り返す.