ビットサイズNのすべての可能なビットの組み合わせを取得

David542:

全加算器をテストするために、私は、次の3つの方法(input_aための1つ、input_bのための1つ、およびcarry_cに対して1つ)内のすべての可能な0または1の入力を組み合わせています。これを行うには私がやっています:

>>> [(bit1, bit2, bit3) for bit1 in a for bit2 in a for bit3 in a]
[(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1)]

これは罰金を動作しますが、これについての私の2の考えは以下のとおりです。

  • これを行うにはより多くの神託の方法はあります。に建てられたような何かcombinations([0,1], 3)
  • 例えば、私はそれを20回記述することなく、20個の可能性を行うことができるように抽象リスト-理解への道があるだろうか?

私はで少し見てきましたitertoolsが、それは上記の場合のために、上記のリストの内包表記として(そうでない場合より)多くのコードとしてちょうど約必要であることを使用してのように思えます。

iz_:

あなたは使用することができますproductからitertools(デカルト積):

from itertools import product

print(list(product([0, 1], repeat=3)))

出力:

[(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1)]

タプルごとにありますどのように多くの要素を変更するには、変更することができrepeat、引数を。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=365142&siteId=1