数学では、行列乗算または行列積は、2つの行列から行列を生成する2項演算です。この定義は、線形方程式とベクトルの線形変換によって動機付けられています。これらは、応用数学、物理学、および工学で多くの用途があります。より詳細には、Aがn×m行列で、Bがm×p行列である場合、それらの行列積ABはn×p行列です。 Bの列と合計してABのエントリを生成します。2つの線形変換が行列で表される場合、行列積は2つの変換の構成を表します。
出典:ウィキペディア
言い換えると、2つの行列を乗算するには、たとえば:
1 2 3 1 4
2 3 4 × 3 1 =
3 4 5 4 6
第一、第二のマトリックス中に第1の行列における行番号1、列番号1を取り、乗算1によって1、2によって3、そして3による4。
1 × 1 = 1
2 × 3 = 6
3 × 4 = 12
それらを一緒に追加して、最初のアイテムを取得します。
1 2 3 1 4 19
2 3 4 × 3 1 =
3 4 5 4 6
結果の最初の列の2番目の番号については、行番号1の代わりに行番号2を使用して同じことを行う必要があります。
1 × 2 = 2
3 × 3 = 9
4 × 4 = 16
= 27
最初の列全体を実行すると、結果は次のようになります。
1 2 3 1 4 19
2 3 4 × 3 1 = 27
3 4 5 4 6 35
ここで、まったく同じことをもう一度行いますが、最初の列ではなく2番目の列を取得します。
1 2 3 1 4 19 24
2 3 4 × 3 1 = 27 35
3 4 5 4 6 35 46
あなたのタスク
-10000から10000の範囲の数値を含む2つの行列(最大次元200x200)があり、最初の行の列数が2番目の行の数と等しい場合、最初の行列に2番目の行列を掛けます。(行列の乗算は非可換です。)
入力を受け取り、配列の配列(または同等のもの)、行列(言語にその形式がある場合)、または複数行の文字列として出力を与えることができます。
行列の乗算に組み込み関数を使用することはできません。
テストケース
1 2 1 2 3 4 5 13 16 19 22 25
3 4 × 6 7 8 9 10 = 27 34 41 48 55
5 6 41 52 63 74 85
2 3 3 5 15 13
3 4 × 3 1 = 21 19
5 3 11 27
1 3 1 3 7 15
9 3 × 2 4 = 15 39
1 -1000 -1999 -3997
これはcode-golfであるため、バイト数が最も少ないコードが優先されることに注意してください。