- 1 : 2021/08/07(土) 16:54:57.957 ID:UQMiSuir0
-
Pythonで以下のコードを実行しました
期待する配列がprintされないので助けてください。weights = [3,2,5,8,1,8,1,3]
N = len(weights)
way = [[1,1],[10,8],[5,6],[8,7],[8,5]]
M = len(way)
dp = [[[10,10]] + [[0,0]]*(M) for i in range(N + 1)]for i in range(N):
for j in range(M):
dp[i + 1][j + 1][0] = way[j][0]
dp[i + 1][j + 1][1] = way[j][1]print(dp)
- 2 : 2021/08/07(土) 16:55:16.860 ID:UQMiSuir0
-
#期待する配列
[
[[10, 10], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],
[[10, 10], [1, 1], [10, 8], [5, 6], [8, 7], [8, 5]],
[[10, 10], [1, 1], [10, 8], [5, 6], [8, 7], [8, 5]],
[[10, 10], [1, 1], [10, 8], [5, 6], [8, 7], [8, 5]],
[[10, 10], [1, 1], [10, 8], [5, 6], [8, 7], [8, 5]],
[[10, 10], [1, 1], [10, 8], [5, 6], [8, 7], [8, 5]],
[[10, 10], [1, 1], [10, 8], [5, 6], [8, 7], [8, 5]],
[[10, 10], [1, 1], [10, 8], [5, 6], [8, 7], [8, 5]],
[[10, 10], [1, 1], [10, 8], [5, 6], [8, 7], [8, 5]],
]#printされる配列
[
[[10, 10], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],
[[10, 10], [8, 5], [8, 5], [8, 5], [8, 5], [8, 5]],
[[10, 10], [8, 5], [8, 5], [8, 5], [8, 5], [8, 5]],
[[10, 10], [8, 5], [8, 5], [8, 5], [8, 5], [8, 5]],
[[10, 10], [8, 5], [8, 5], [8, 5], [8, 5], [8, 5]],
[[10, 10], [8, 5], [8, 5], [8, 5], [8, 5], [8, 5]],
[[10, 10], [8, 5], [8, 5], [8, 5], [8, 5], [8, 5]],
[[10, 10], [8, 5], [8, 5], [8, 5], [8, 5], [8, 5]],
[[10, 10], [8, 5], [8, 5], [8, 5], [8, 5], [8, 5]]
] - 3 : 2021/08/07(土) 17:01:44.880 ID:of1L6z2U0
-
マジレスしていいの?
- 5 : 2021/08/07(土) 17:02:55.366 ID:UQMiSuir0
-
>>3
お願いします! - 6 : 2021/08/07(土) 17:04:05.906 ID:of1L6z2U0
-
>>5
ちょい待ち - 7 : 2021/08/07(土) 17:04:48.244 ID:UQMiSuir0
-
>>6
ありがとうございます! - 4 : 2021/08/07(土) 17:02:29.646 ID:UQMiSuir0
-
検証のため、i == 0 and j == 0の時のdpをprintしてみました
weights = [3,2,5,8,1,8,1,3]
N = len(weights)
way = [[1,1],[10,8],[5,6],[8,7],[8,5]]
M = len(way)
dp = [[[10,10]] + [[0,0]]*(M) for i in range(N + 1)]for i in range(N):
for j in range(M):
dp[i + 1][j + 1][0] = way[j][0]
dp[i + 1][j + 1][1] = way[j][1]#デバッグ用
if i == 0 and j == 0:
print(dp)するとこのような配列がprintされます。
この時点でdp[1][1]からdp[1][5]まで[1, 1]で埋め尽くされる理由がわからない・・
dp[1][1]のみがに[1, 1]が入っていて欲しいんだけど
[
[[10, 10], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],
[[10, 10], [1, 1], [1, 1], [1, 1], [1, 1], [1, 1]],
[[10, 10], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],
[[10, 10], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],
[[10, 10], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],
[[10, 10], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],
[[10, 10], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],
[[10, 10], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],
[[10, 10], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
] - 8 : 2021/08/07(土) 17:05:47.868 ID:rq9zV8RZ0
-
なるほどな
- 9 : 2021/08/07(土) 17:07:02.533 ID:jQPhzRFu0
-
データフレームは使っちゃダメなの
- 10 : 2021/08/07(土) 17:09:52.499 ID:UQMiSuir0
-
>>9
すみません、データフレームがよく分からず使いこなせないのでとりあえずは使わない方針でコードを書きたいと思っています - 11 : 2021/08/07(土) 17:11:53.983 ID:of1L6z2U0
-
確かにおかしいな
何だこれ - 12 : 2021/08/07(土) 17:16:00.992 ID:of1L6z2U0
-
あーそういうことか、たぶん分かったわ
- 13 : 2021/08/07(土) 17:19:36.505 ID:of1L6z2U0
-
a = [[1]] + [[2]] * 3
a[0][1] = 10
print(a)これ実行してみれば原因がわかると思うよ
- 14 : 2021/08/07(土) 17:21:05.207 ID:UQMiSuir0
-
>>13
確認します! - 16 : 2021/08/07(土) 17:21:50.793 ID:xvt0Cd420
-
>>13
python覚えてないけどやっぱそこなのか
dpに代入してる式で何やってるのかよく分からんかった - 15 : 2021/08/07(土) 17:21:16.060 ID:4JKfvrURr
-
俺は設定6で6500枚と6000枚が最高や
どんだけすごいじこやねんか
- 17 : 2021/08/07(土) 17:21:54.481 ID:dMxo5Vegr
-
すごろく
- 18 : 2021/08/07(土) 17:24:19.534 ID:UQMiSuir0
-
list assignment index out of range
になるのですが、それが関係しているという事ですか? - 19 : 2021/08/07(土) 17:26:16.288 ID:of1L6z2U0
-
>>18
ごめんこうだったa = [[1]] + [[2]] * 3
a[1][0] = 10
print(a) - 22 : 2021/08/07(土) 17:30:07.688 ID:UQMiSuir0
-
>>19
ありがとうございます!
似たような現象が再現できた
ちょっと考えてみます - 20 : 2021/08/07(土) 17:27:20.362 ID:9zJ/gWfc0
-
はぁなるほどね
こういうのうっかりハマりそうで怖いな - 21 : 2021/08/07(土) 17:27:26.103 ID:/EjbHc+Jr
-
1年前事故って7000枚出したけど全然増えないし時間かかるし死ぬほど疲れた記憶しかない
- 23 : 2021/08/07(土) 17:31:11.658 ID:71vAAznz0
-
配列の初期化の仕方が気持ち悪い
- 24 : 2021/08/07(土) 17:32:43.276 ID:9zJ/gWfc0
-
これ競プロとかでしょ?
何か独特な書き方するよね - 25 : 2021/08/07(土) 17:33:21.059 ID:xvENAQ5v0
-
dpに代入する行で何やってるのか分からんのだが誰か解説してくれ
- 26 : 2021/08/07(土) 17:35:18.788 ID:of1L6z2U0
-
>>25
(i+1,j+1)成分がway[j]になるようにしてる - 27 : 2021/08/07(土) 17:35:28.300 ID:CAntoah3r
-
俺が最初に見たのは堂本剛のやつ
- 28 : 2021/08/07(土) 17:36:53.413 ID:UQMiSuir0
-
ありがとうございました
dp配列の定義の仕方が良くなかったのですね
変な書き方やめて素直に書くことにします - 30 : 2021/08/07(土) 17:39:55.832 ID:FwtZZE8+r
-
ざっこw
- 32 : 2021/08/07(土) 17:50:24.384 ID:UQMiSuir0
-
このような書き方に変更したら意図した動きになりました
dp = [[[10,10]] + [[0,0] for j in range(M)] for i in range(N + 1)]
コメント