を反復:Pythonのリスト内包し、私のようなデザインのような「グリッド」を持つファイルを与えられた
5,20,13
2,0,1,3,0
1,2,1,2,1
2,1,2,1,0
0,2,0,2,2
0,3,3,3,1
が攻撃シミュレータを作ること。 そして、最初の行はn(グリッドのサイズ)、p(1平方キロあたりの損失率)、k(勝つために最後の行を超えなければならない総数)を表します。
に正しいnumAP = numAttackPokemon
gridRules = gymData[0]
gymGrid = gymData[1]
n = gridRules[0]
p = gridRules[1]
k = gridRules[2]
numPRC = float(numAP/n)
numPRCR = [numPRC] * n
for numRow in range(0, n):
gymGridNum = gymGrid[numRow]
aList = []
for num in gymGridNum:
numDefSub = numPRCR[num] - gymGridNum[num]
if numDefSub <= 0:
print("You have failed, restart the program and try again!")
break
else:
aList.append(numDefSub)
returns:
[18.0, 20.0, 19.0, 17.0, 20.0]
[19.0, 18.0, 19.0, 18.0, 19.0]
[18.0, 19.0, 18.0, 19.0, 20.0]
[20.0, 18.0, 20.0, 18.0, 18.0]
[20.0, 17.0, 17.0, 17.0, 19.0]
:私はに走ってきた
問題は、シミュレーションの一部であり、私はコードの行を反復処理し、そのように編集する数学を行う方法のことを理解してセンス。しかし私はまた、私がしたグリッド・スクエアごとに失われた「ランダム」パーセントを適用する必要があります(このコード行ではなく、事前にこの問題を解消しています)。私が言っていることは、このコードの最初の行を編集し(数字とパーセントの損失を控除して)、残りのグリッドに対してその行を使って数学を繰り返す必要があるということです。グリッド内の各行のリストを保持、編集、および使用する方法がいくらか失われました。
正しい出力は、このようなものになるだろうが、ランダムな割合の損失なし:(numPRC = 100)私は再利用する必要が
[18.0, 20.0, 19.0, 17.0, 20.0]
[17.0, 18.0, 18.0, 15.0, 19.0]
[15.0, 17.0, 16.0, 14.0, 19.0]
[15.0, 15.0, 16.0, 12.0, 17.0]
[15.0, 12.0, 13.0, 9.0, 16.0]
:
[18.0, 20.0, 19.0, 17.0, 20.0]
の残りの部分については行は更新されますが、更新リストを反復する方法はわかりません。私はそれが十分に簡単だと信じていますが、私は細部を欠いています。
私はかなり混乱しています。勝つ最後のラインを過ぎて行くことについて話します。 1行(行)の結果が次の行(行)に影響を与えるべきか? –
また、あなたはフロートを使ってあなたのポケモンを割り振るべきですか?または、可能な余りを行全体に分散して、整数の割り当てを行う必要がありますか? –
@AustinHastings各番号の「グリッド」の2行目[2,0,1,3,0]は、攻撃するポケモンの数から減算する必要があります。だから1行の結果は次の行に影響する必要があります。フロートとして保管されているポケモンについては、私の教授はこれらの「ポケモン」は突然変異していると言いました。そのため、一部のポケモンは完全なポケモンではないかもしれません。非常に奇妙です。 – Cabbage363