2017-07-01 14 views
1

私は4ブールを持っているとしましょう。真と偽のすべての可能な組み合わせを繰り返しますか?

はどのようなプログラミング言語は関係ないのであれば

1000 
0100 
0010 
0001 
1100//etc... 
+1

特定のプログラミング言語で何かを実装しますか?そのルックアップを生成するには、文脈によって大きく異なる方法があります。 – Codor

+0

@Codor私は言語を本当に気にしません、私はちょうどそれの背後にある論理を見たいと思います。 – JorensM

+5

単純に0から15までカウントし、ビットごとの演算子を使用してビット0から3を抽出します。 –

答えて

0

のようなすべての組み合わせを反復処理は、組み合わせのリストを生成するには、少なくとも2つの可能性があることをループのために作るのですか。

整数型のビットパターンの最初の列挙は次のように行うことができます。

1. Let n be the number of boolean variables. 
2. Enumerate each number from 0 to 2^n-1. 
3. For each of these numbers, say e, generate an assignment of the 
    boolean variables where the i-th variable is assigned true 
    if and only if the i-th bit of e is set. 
4. Save each of these assignments. 

次に、次のように割り当てを繰り返して生成します。

1. Initialize a list l with one entry; the single entry 
    represents a potential assignment of the variables. 
2. While there are entries in the list in which there is an unassigned 
    variable, execute the following steps, where c is a list of candidate assignments. 
3. For each entry in l which has an unassigned variable, say e, generate two entries in c, 
    namely one where the unassigned variable is set to true and one in 
    which it is set to false. Remove e from l. 
4. Merge the candidate list c into l. 
関連する問題