設問
本日の演習で行った行列の積の計算を拡張して,3行3列の行列どおしの積を計算 するように変更せよ.例題としては,次の二つの行列の積とする.計算を行う処理の行は,1行のみ,しかも,積を実行する回数はそ の行の中で1回だけという制約をつけるのでそれに沿うような処理を考えること.
┌ ┐ ┌ ┐
│ 2 3 4 │ │ 4 3 2 │
│ 5 7 9 │ x │ 6 4 3 │
│ 6 8 2 │ │ 9 5 7 │
└ ┘ └ ┘
上記だけでなく,一般的な3行3列の行列の積の計算が出来るようなスクリプトと すること.ヒント:行indexと列indexを i と j で表すと,も う一つのindexとして k を用意して3重ループとすることで,演習問題 と同じ様な自己代入で上記の制約条件を満足したものが実現できる.
matrix1 = [[2,3,4],[5,7,9],[6,8,2]] matrix2 = [[4,3,2],[6,4,3],[9,5,7]] pro = [[0,0,0],[0,0,0],[0,0,0]] for i in 0..2 for j in 0..2 for k in 0..2 pro[i][j] += matrix1[i][k] * matrix2[k][j] end end end p pro |
設問
本日の演習で行った行列の積の計算を拡張して,3行3列の行列どおしの積を計算 するように変更せよ.例題としては,次の二つの行列の積とする.計算を行う処理の行は,1行のみ,しかも,積を実行する回数はそ の行の中で1回だけという制約をつけるのでそれに沿うような処理を考えること.
┌ ┐ ┌ ┐
│ 2 3 4 │ │ 4 3 2 │
│ 5 7 9 │ x │ 2 5 8 │
│ 6 8 2 │ │ 9 5 7 │
└ ┘ └ ┘
上記だけでなく,一般的な3行3列の行列の積の計算が出来るようなスクリプトと すること.ヒント:行indexと列indexを i と j で表すと,も う一つのindexとして k を用意して3重ループとすることで,演習問題 と同じ様な自己代入で上記の制約条件を満足したものが実現できる.
matrix1 = [[2,3,4],[5,7,9],[6,8,2]] matrix2 = [[4,3,2],[2,5,8],[9,5,7]] pro = [[0,0,0],[0,0,0],[0,0,0]] for i in 0..2 for j in 0..2 for k in 0..2 pro[i][j] += matrix1[i][k] * matrix2[k][j] end end end p pro |
Back |