ブール式ソルバー
部分式の列を伴うステップごとの真理値表
インタラクティブシミュレーションを読み込んでいます...
論理を分割してシンプルな回路にする 🖖
有用なハードウェアのコツ:TRUE/FALSEの動作を最もよく分離する入力を選択し、各ブランチを実装してその入力でマルチプレクスします。
すべての可能性に1行ずつ 🖖
真理値表とは、要するにすべてを尽くした一覧です。TRUE/FALSE の入力のあらゆる組み合わせを書き出し、それぞれで式がどうなるかを示します。変数が n 個なら行数は 2ⁿ となり、入力が1つ増えるたびに表は倍になります。変数3個なら8行、5個なら32行です。途中の列も大切で、各部分式を一段ずつ組み立てるので、最終結果を鵜呑みにせず、演算子ごとに論理を追えます。
32行、40億通りの関数 🖖
ここが意外な点です。5変数の表はわずか32行なのに、そこに定義できる異なる式の数は 2³² = 4,294,967,296 通りもあります。出力列を0と1で埋める埋め方の一つ一つが、それぞれ別のブール関数であり、全部で 2^(2ⁿ) 個存在します。つまりこの小さなツールは、40億を超える論理回路の空間を静かに動き回っているのです。最後の列が取りうるパターンごとに、1つずつ。
例題
- 単純AND - AND: AとBがともに1のときだけ出力は1になる
- (A OR B) AND NOT C - 変数3個、8行 — NOTが枝全体をどう反転させるかを示す
- 3入力多数決 - 多数決: A、B、Cのうち少なくとも2つが1のとき1になる
- 2:1マルチプレクサ - マルチプレクサ: S=0のときAを出力し、S=1のときBを出力する
- トートロジー A | !A - トートロジー: Aの値にかかわらず常に真
- 矛盾 A & !A - 矛盾式: Aの値にかかわらず常に偽
- ド・モルガン !(A & B) - ド・モルガンの形: NOT(AND)は否定同士のORに等しい
- ド・モルガン !A | !B - ド・モルガンの法則により!(A & B)と等価
- A & (B | C) - 分配法則の左辺
- (A & B) | (A & C) - それと等価な分配展開
- XOR展開形 - XORをミンタームに展開したもの
- A AND A AND A AND A - 冪等法則: 同じ変数同士のANDを繰り返してもAに簡略化される
- 吸収法則 - 吸収法則: A OR (A AND B)はAに簡略化される
- 合意定理 - 冗長項を消去するコンセンサス定理の例
- 含意 A -> B - 含意形: A -> Bは!A OR Bと等価
- 3入力パリティ - 3入力パリティ: 1である入力の個数が奇数のとき真になる