リストB = [0,0,0,0,0,0,0,0,0]ですが、任意の長さにすることができます。条件付き反復リストの作成
私は反復によってBに配置できるすべての値を反復しようとしています。条件Cが満たされたとき、私は反復した要素を "リセット"し、次の項目を1つ上にバンプします。バイナリのような並べ替え:
000は001になりますが、私たちはそれを0に落として次の列を増やします:002は010などになります。
私はそれがあまり説明していない場合は申し訳ありません。
だから、Bは等々
B=[0,0,0,0,1,2,5]
to
B=[0,0,0,0,1,2,6]
to
B=[0,0,0,0,1,2,7]
から行くかもしれません。
しかし、条件Cが満たされたとき、私はこの方法でリセットしたい:
B=[0,0,0,0,1,2,96]
...attempt to increment
B=[0,0,0,0,1,2,97]
...attempt to increment
Condition C met
B=[0,0,0,0,1,3,0]
そして、これを行うことができる、私は最終的に1111111を押すと、あることに(同等の左端の要素に、条件Cを打つまでそれ以上は増やせません)。
B=[0,0,0,0,0,0,0,0]
lenB=len(B)
while sum(B)<=100: #I think I have to somehow account for having tried incrementing the far left instead
B[lenB-1]+=1 #increment last value in B
while sum(B)>100: #if the sum is greater than 100
B[lenB-1]=0 #reset the far right element
B[lenB-2]+=1 #increment the next element
#but this is wrong because it needs to perform this check again and again
#for every column, while also checking if B[len-1] or B[len-2] even exists
EDIT:私の条件Cでの、条件C =すべての数字の合計が100
私の試みを(AGFにより要求される)を超えたとしましょうコーディングが容易さのために
単純にSum(B)> 100かどうかをチェックするよりも、現実はMUCHより複雑です。私は単純に "sum(B)> 100"をより複雑な条件関数に置き換えることができるので、これをダミー条件として使用しています。
あなたは何を試してみましたか? _あなたが解決できない部分を具体的に教えてください。私たちはあなたのコードを書くためのものではありません。 – agf
私はプロセスを適切にループして、私がどこにいるのか、どのように増分するのかを把握する方法がわかりません。あなたが0111111でのやり方と1000000への「リセット」のように、一度に複数のものをリセットする必要がある状況を考慮しなければならないと思うからです。 – AOAOne
@agf上記の私の要求を要求通りに追加しました – AOAOne