これに対して明確に定義された「アルゴリズムクラス」があるかどうかはわかりません。それは単なる組み合わせ論の演習です。生成は次の 3 つのステップで実行できます。
- すべての 24 ビット数値を 8 ビット以下のセットで生成します (いくつかのルックアップ テーブルを事前に計算すると、これを少し高速化できる場合があります)。
- n ビットが設定された 24 ビットの数値ごとに、すべての n ビットの数値を反復します。
- n ビット数の k 番目のビットが 0 の場合、24 ビット数の k 番目のセット ビットは -1 として出力され、それ以外の場合は 1 として出力されます。
手順 2 ~ 3 をもう少しうまく説明するには、24 ビットの数値に 4 ビットが設定されており、次のように見えるとします。
0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0
0 0 0 0
次に、 からまでの 16 個の 4 ビット数値すべてを反復処理します1 1 1 1
。たとえば、次のようになります。
0 0 0 0 gives the string 0 0 0 -1 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 0 -1 0 0 0 0
0 1 1 0 gives the string 0 0 0 -1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 -1 0 0 0 0
0 1 0 0 gives the string 0 0 0 -1 0 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 -1 0 0 0 0
1 1 1 1 gives the string 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0