前提・実現したいこと
Pythonについて
進め方を教えてください。
該当のソースコード
Python
以下、エクササイズ
Read two matrices from a file named 'd.txt'.
Sample input :
2 2
1 2
3 4
2 1
5
6
Sample output:
17
39
###やったこと
Python
1a= [] 2with open('matrix.txt','r')as f: 3 for line in f: 4 a.append(list(map(int, line.split()))) 5 6print(a) 7
https://teratail.com/help/question-tips#questionTips3-5-1
プログラムの部分(やったこと)
については、コードブロックを使って表記しましょう。
ちなみに
プログラム以前に問題の内容はちゃんと理解できていますかね?
日本語でいえばどの数字をどう計算した結果を求めたいかを式で書いて、それを順次プログラムにしていく、という流れになるかと思いますが。
ありがとうございます。はじめて投稿するのでわかりませんでした。
一旦、コードブロック使用してみました
はい。コードブロックはこれで問題ありません!
matrix.txtを作成、sample input 内の数字を入れ保存、Pythonで出力し
[[2, 2], [1, 2], [3, 4], [2, 1], [5], [6]]となりました。そして[2, 2]をそれぞれm1Row= a[0][0]
m1Column= a[0][1]へ。
[1,2] [3,4]を、for文で繰り返そうしましたがよくわからなくなってしまい、質問させていただいた次第です。
問題文をちゃんと日本語で解釈してほしいです。
このサンプルの6行は、以下のようになっているはずです。
1行目:最初の行列Aは2x2行列であることを表す
2 2
2-3行目:2x2行列の中身を表す
1 2
3 4
4行目:次の行列Bは2x1行列であることを表す
5-6行目: 2x1行列の中身を表す
5
6
したがってこの場合の計算は
AxBの結果として、
1*5 + 2*4 = 17
3*5 + 4*6 = 39
よって、
17
39
という出力を得る
ということですよね。
つまり、まずやるべきなのは、
AとBという行列をどう生成するか、そのために何行何列の行列かを指示したファイルの行を読み、その分だけ必要なデータを数行読み込んで配列にして、また行列の構成を指示した行を読んで、その分だけ必要なデータを読む
ということですよね?
回答2件
あなたの回答
tips
プレビュー