真理値表から式へのジェネレーター

出力列をクリックして必要な形にすると、ツールがそこから式を読み取ります。標準的な DNF(積和形)、標準的な CNF(和積形)、そして最短の等価な形です。すべてブラウザー内で実行され、作成した真理値表はリンクに保存されます。

変数: p, q
pq出力

出力値をクリックして真(⊤)と偽(⊥)を切り替えます

生成された式

選言標準形(積和形)
(p ∧ ¬q) ∨ (¬p ∧ q)

真理値表をブール式に変換する方法

どの真理値表も何らかの式の真理値表であり、そのうち 2 つは代数計算も当てずっぽうもなしに、そのまま読み取れます。

  1. n 変数の 2ⁿ 行をすべて書き出し、出力が ⊤ の行に印を付けます。
  2. ⊤ の各行について最小項を書きます。すべての変数を AND で結び、その行で偽になる変数を否定します。最小項を OR で結べば DNF です。
  3. ⊥ の各行について最大項を書きます。すべての変数を OR で結び、その行で真になる変数を否定します。最大項を AND で結べば CNF です。
  4. どちらの式も出発点の表とまったく同じ真理値表を持つので、どちらも正解です。最短の形が必要なら、そのあとで簡単化します。

最小項

すべての変数の連言(各変数は否定されるか、されないか)で、表のちょうど 1 行だけで真になるものです。DNF は出力が ⊤ の行の最小項の選言なので、⊤ の行 1 つにつき 1 項になります。

最大項

すべての変数の選言(各変数は否定されるか、されないか)で、表のちょうど 1 行だけで偽になるものです。CNF は出力が ⊥ の行の最大項の連言なので、⊥ の行 1 つにつき 1 項になります。

例題:排他的論理和

上の表はツールが最初に表示するものです。p と q が異なる 2 行でちょうど真になります。

  • 2 行が ⊤ なので、DNF は 2 つの最小項になります:(p ∧ ¬q) ∨ (¬p ∧ q)
  • 残りの 2 行が ⊥ なので、CNF は 2 つの最大項になります:(p ∨ q) ∧ (¬p ∨ ¬q)

どちらもこれ以上短くできません。排他的論理和には両方の項が本当に必要だからです。標準形が常に遠回りとは限らないことが、ここで一度わかります。「p、q、r のうち高々 1 つ」のような表こそ、最簡形が大きく差をつける場面です。

ブール合成の理解

選言標準形 (DNF)

DNFは式をANDのOR(積和形)として表現します。出力が真である各行に対して、すべての変数をANDで結合し、偽の変数を否定した最小項を作成します。これらの最小項はORで結合されて完全な式を形成します。

連言標準形 (CNF)

CNFは式をORのAND(和積形)として表現します。出力が偽である各行に対して、すべての変数をORで結合し、真の変数を否定した最大項を作成します。これらの最大項はANDで結合されて完全な式を形成します。

DNF と CNF の比較

観点選言標準形(積和形)連言標準形(和積形)
作り方出力が ⊤ の行から、1 行につき 1 つの最小項出力が ⊥ の行から、1 行につき 1 つの最大項
連言の選言:AND の OR選言の連言:OR の AND
向いている場面式を真にする場合を列挙したいとき、AND-OR 回路を組みたいとき同時に満たすべき制約が欲しいとき、SAT ソルバーが求める節形式が必要なとき

表はどれくらい大きくなる?

n 変数の関数は 2ⁿ 行あるので、変数を 1 つ増やすたびに表は倍になります。2 変数で 4 行、3 変数で 8 行、4 変数で 16 行、5 変数で 32 行、このツールはそこまでです。DNF は ⊤ の行ごとに 1 項、CNF は ⊥ の行ごとに 1 項を取るので、両者で各行をちょうど 1 回ずつ数え上げることになり、どちらか一方が必ず短い出発点になります。

真理値表合成の応用

真理値表を論理式に変換することは、コンピュータサイエンスとデジタルエレクトロニクスの基本的な技術です。このツールは以下に役立ちます:

  • デジタル回路設計 - 望ましい入出力動作からロジックゲート用のブール方程式を作成
  • ソフトウェア開発 - 仕様表から条件付きロジックを生成
  • 学術研究 - ブール代数と命題論理を学び、練習する
  • 論理最適化 - より単純な等価式を見つけるためにDNFとCNF形式を比較

よくある質問

論理計算機の使い方についてよく寄せられる質問への回答

「真理値表から論理式へ」のツールは何をするものですか?

計算機を逆向きに動かします。各行をクリックして真理値表の出力列を決めると、ちょうどその真理値表をもつ論理式を、選言標準形(連言の選言)または連言標準形(選言の連言)で作り出します。

選言標準形と連言標準形の違いは何ですか?

選言標準形は積和形です。出力が真である行ごとに連言を一つ作り、それらを選言で結びます。連言標準形は和積形で、出力が偽である行ごとに選言を一つ作り、それらを連言で結びます。どちらも同じ関数を表すので、あなたの表にとって短くなるほうを選べばよく、偽が多い列なら選言標準形が、真が多い列なら連言標準形が短くなります。

合成ツールは変数をいくつまで扱えますか?

最大 5 個、つまり 32 行の表までです。変数を一つ増やすごとに行数は倍になり、5 個を超えると手で設定できる規模ではなくなります。

生成された式がとても長いのはなぜですか?

標準形は行ごとに組み立てられ、覆うべき行それぞれに全変数を含む項が一つ対応します。つまり長さは、式の背後にある考えではなく真理値表に従います。作り方の上で正しさは保証されますが、簡潔さは保証されません。短くしたいときは計算機で開いてください。最小化された選言標準形を含む同値な形が一覧されます。

式を簡単にしたものを得られますか?

はい。計算機に入力して、真理値表の下にある同値な形をご覧ください。代数法則による書き換えで得られた形に加え、真理値表から読み取った選言標準形と連言標準形、そして最小化された選言標準形が並びます。

すべての質問を見る