授業-ソフトウェア工学 > 2018年度 > 試験 > 第01回 学力確認試験
授業-2018年度-ソフトウェア工学-第01回 学力確認試験
行列の積を求める関数multiply_matrix( x, y )を作ってください
問題 03: 行列の積を求める関数multiply_matrix( x, y )を作ってください
問題
二重リスト(二次元配列として扱う)
3-1
行列の積を求める関数multiply_matrix( x, y )を作ってください
行列の積を求める関数multiply_matrix( x, y )を作ってください.
また,行列を表示する関数print_matrix( x )も作ってください.
xとyは,それぞれm行×n列とn行×p列の行列で,プログラム中で
与えてしまいます.結果は画面に表示するようにしてください
関数
multiply_matrix( x, y )
x
(list)
二次元配列(intの二重リスト)
y
(list)
二次元配列(intの二重リスト)
返戻値
(list)
xとyの積
print_matrix( x, y )
x
行列xを見やすく表示する
メイン
# ==============================================================================
# ===== 【メイン・プログラム】 =================================================
# ------------------------------------------------------------------------------
# ----- データを指定する -------------------------------------------------------
# ----- xはm行×n列 (3行×2列)
x = [[1,2], [3,4], [5,6]]
# ----- yはn行×p列 (2行×4列)
y = [[1,2,3,4],[5,6,7,8]]
# ------------------------------------------------------------------------------
# ----- 行列の積を求め,表示する -----------------------------------------------
# ----- 積はm行×p列 (3行×4列)
print_matrix( multiply_matrix( x, y ) )
# ==============================================================================
使い方
python mul_mat.py 11 14 17 20 23 30 37 44 35 46 57 68
解答例
[ edit]
★基本的な解 (1): この問題で,確認したい学力を持つことを示しています
a
基本的な解法です.
★高度な手法: 授業では扱っていない手法を使っています
b
行列を表示するためにpprintモジュールを使います
(詳しくはやっていませんが,実は,pprintモジュールは授業でちょっとだけ使っています)c
NumPyモジュールを使っています