情報科学概論
Aクラス 宿題 2006.01.23

Back


宿題においても, 解答用紙 を使用する.この書式で解答を提出すること.

設問

本日の演習で行った行列の積の計算を拡張して,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


情報科学概論
Bクラス 宿題 2006.01.23


宿題においても, 解答用紙 を使用する.この書式で解答を提出すること.

設問

本日の演習で行った行列の積の計算を拡張して,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