そのため、現在、変数の可能な値のドメインの作成に取り組んでいます。これは、私の場合は文字の配列です。私が扱うデータはそれほど小さくないため、たとえそうであったとしても、すべての char スロットで 2 つの値が許容される場合、11 スロットの配列には 2^11 の可能な値があり、実際には配列の量ではありません。持ってる。
このため、後で制約を使用してドメインを削減する代わりに、既に制約に基づいてドメインを生成しようとしています。
制約は基本的に、同じ文字のブロックとブロックの順序を示します。次のようになります。
#,2,G,1
これが私が持っている制限であり、配列のサイズが5であるとしましょう。空の配列は次のようになります
[_][_][_][_][_]
制約に従ってすべてを先頭に積み重ねるだけで、ドメインの 1 つの要素を作成できるようになりました。
[#][#][G][_][_]
ただし、これの他のすべての可能なバリアントを生成する必要があります。それらは次のとおりです。
[#][#][_][G][_]
[#][#][_][_][G]
[_][#][#][G][_]
[_][#][#][_][G]
[_][_][#][#][G]
このように、ドメインの要素を 2^5 から 6 に削減することに成功しました。
質問:誰かがこれを行う方法を提供できますか?コードである必要はありません。基本的なアイデアだけで十分でしょう