- ベストアンサー
pythonで制作中のプログラムのエラー修繕と速度向上を行いたいのですが...
こんにちは。いつもお世話になっております。 今回、file("filename.txt", "r")で読み込んだ多次元配列の中から、数字の合計が一番大きくなる長方形を探し出して合計をprintするプログラムを作っています。なんだか分かりにくい説明ですみません...。 例えば、 0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 -2 が読み込まれた配列だとしたら、左下の 9 2 -4 1 -1 8 を含む長方形内の数字の合計(9+2-4+1-1+8)が、この配列内の数字の合計の最大になります。この最大合計値を含む長方形を見つけ出して合計をprintさせたいのです。 自力で書いたものは以下です↓ myFile = file("matrix.txt", "r") row = 0 for line in myFile: line = line.rstrip() nums = line,split(" ") dim = len(nums) for col in range(dim): matrix[row][col] = int(nums(col))←ここでエラーが出てしまいました row = row+1 myFile.close() sumMatrix = [[0 for j in range(dim)] for i in range(dim)] for m in range(dim): for n in range(dim): mySum = 0 for p in range(m+1): for q in range(n+1): mySum = mySum = matrix[p][q] sumMatrix[m][n] = mySum for i in range(dim): for j in range(dim): print sumMatrix[i][j], 8行目のエラーを解消させたいのと、このプログラムで配列が大きいものになると、とても遅くなってしまうようなので、もっと早いものにしたいのですが... ご回答、よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- sakusaker7
- ベストアンサー率62% (800/1280)
補足
ご回答ありがとうございます。教えていただいた方法でかなり速くなりました!詳細になご説明のおかげでとてもわかりやすかったです!