私は現在、真理値表で入力信号のバイナリ結合を生成する必要があるアプリケーションに取り組んでいます。
シグナルは '0' 、 '1' または 'X' (ドントケア) のいずれかです。入力の組み合わせを動的に生成して、すべての可能な組み合わせが最小限のエントリでカバーされるようにする必要があります。それを難しくしているのは、ドントケア (「X」) 状態です。
例: 3 ビット信号 "XX X" がすべての組み合わせをカバーし、最小であると考える場合
X | X | バツ
ただし、ユーザーが "XX X" を "XX 0" に変更した場合、アプリケーションは新しいエントリ "XX 1" を挿入して、可能なすべての組み合わせをカバーする必要があります。
X | X | 0
X | X | 1
ユーザーが「XX 0」を「X 1 0」に変更した場合、新しいエントリ X 0 0 を生成する必要があります。
X | 1 | 0
X | X | 1
X | 0 | 0
ここで、ユーザーがエントリ X 0 0 を XXX に変更した場合、他のすべてのエントリを削除する必要があります。最終的には、すべての組み合わせがカバーされたテーブルを最小限に抑える必要があります。
これをJavaでプログラム的に行う必要があります。これを行う数学的な方法はありますか?
ありがとう