AOJの
Matrix Vector Multiplication
からです。行列と配列の内積をnumpyを使用せずに求める問題で
下記コードにてacceptedしたのですが、
個人的に改善したい点があります。
➀range(len(M))
,range(len(ans))
←コードの視認性を悪くする
➁vec = 0
←他の簡潔な方法があるのではないか
➂そもそものコードが長いような気がする(forを多用している気がする、関数にして呼び出すのもありだが、そもそもの行数をもっと短くしたい)
以上の点についてアドバイスをお願いできないでしょうか。
n, m = map(int, input().split()) M = [] for i in range(1, n+1): row = list(map(int, input().split())) M.append(row) v = [] for i in range(1, m+1): v.append(int(input())) ans = [] for i in range(len(M)): ← vec = 0 ← for j in range(len(M[0])): b = M[i][j] * v[j] vec += b ans.append(vec) for i in range(len(ans)): ← print(ans[i])
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/04 06:41