数強塾代表の藤原進之介です。『藤原進之介の最強120講義』第43講は「論理演算とベン図」。共通テスト重要度は最高の S です。AND・OR・NOT、真理値表、ベン図、そして検索窓での絞り込み。バラバラに見えるこの4つが、実はまったく同じ一つの構造だという話をします。この講を読み終えると、ド・モルガンの法則を「暗記するもの」ではなく「4行書けば終わるもの」として扱えるようになります。シリーズ「情報Ⅰ 最強120講義」の一覧はこちら。
1. この講の問い
AND・OR・NOT という論理演算と、共通部分・和集合・補集合という集合演算と、検索窓での絞り込みは、なぜ全部同じものなのでしょうか。
2. 結論
論理演算・集合演算・真理値表・ベン図・検索の絞り込みは、すべて「2値(真か偽か)のとりうる場合を、もれなく数え上げる」という一つの構造の別表現です。
だから真理値表を4行書けば、ベン図の塗り分けも、ド・モルガンの法則も、SQLの絞り込みも、同時に確かめられます。
覚えるべきは表の中身ではなく、「入力が2つなら場合は4通りしかない」という有限性のほうです。
3. なぜそうなるのか
3-1 なぜ AND・OR・NOT が「基本」なのか
文部科学省が公開している高等学校情報科「情報Ⅰ」教員研修用教材の第3章「コンピュータとプログラミング」は、学習11「コンピュータの仕組み」のキーワードとして「コンピュータの構成、演算の仕組み、AND・OR・NOT、真理値表」を挙げています。そして本文で、コンピュータの演算装置が扱う基本的な演算は四則演算とは異なり AND・OR・NOT の3つである、と述べています。
出典:文部科学省「高等学校情報科『情報Ⅰ』教員研修用教材」第3章(PDF)/2020年7月公開/2026年8月3日取得
ここが第一のポイントです。この「基本」という言葉は、「これ以上分解できない」という意味ではなく、「これだけあれば全部作れる」という意味で使われています。実際この教材は、続けて AND・OR・NOT だけで2進数の足し算(半加算器)を組み立てさせる演習を置いています。3つの演算が計算の材料として十分であることを、生徒に手を動かして確認させる作りになっているのです。
3-2 なぜ論理演算と集合演算が同じ構造になるのか
同じ教材は、論理演算を説明するときに 0 を「なし」、1 を「あり」と考え、ベン図と表で表現するという手順を取っています。実はこれが、両者が一致する理由そのものです。
ある要素 x について「x は集合 A に属するか」を考えると、答えは属する/属さないの2通りしかありません。そこで「属する=1、属さない=0」と決めてしまえば、集合 A は「各要素に0か1を割り当てるもの」と同じになります。この見方に立つと、次のように一対一で対応します。
- x が A にも B にも属する ⇔ A が1 かつ B が1 ⇔ A AND B ⇔ 共通部分 A∩B
- x が A か B の少なくとも一方に属する ⇔ A が1 または B が1 ⇔ A OR B ⇔ 和集合 A∪B
- x が A に属さない ⇔ A が1 でない ⇔ NOT A ⇔ 補集合
つまり共通部分は AND の別名、和集合は OR の別名、補集合は NOT の別名です。似ているのではなく、同じ演算を「要素の側から見るか」「真偽の側から見るか」で呼び分けているだけなのです。
同じ理由で、ベン図と真理値表も同じものの別表現になります。入力が A と B の2つなら、要素の居場所は「Aだけ/重なり/Bだけ/どちらでもない外側」の4領域しかありません。真理値表の4行と、ベン図の4領域は1対1に対応します。ベン図が「もれなく塗れる」のは、領域が有限個で尽きているからです。
3-3 ド・モルガンの法則がなぜ成り立つのか
ド・モルガンの法則は次の2本です。
- NOT(A AND B) = (NOT A) OR (NOT B)
- NOT(A OR B) = (NOT A) AND (NOT B)
これは「証明を思いつく」種類の定理ではありません。入力の組み合わせが4通りしかないので、4通り全部試せば証明が終わります。これを網羅的検証といいます。実際にやってみましょう。
| A | B | A AND B | NOT(A AND B) | NOT A | NOT B | (NOT A) OR (NOT B) |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 1 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 0 | 0 | 0 | 0 |
4列目と7列目が全行で一致しました。これで証明は完了です。「たまたま一致した」のではありません。入力パターンを全部尽くしたのだから、他に反例が存在する余地がないのです。
意味のほうから読むと、当たり前のことを言っています。「AとBの両方は満たさない」=「Aを欠くか、Bを欠くか、少なくとも片方は欠けている」。日本語でもそのとおりですね。ド・モルガンの法則が難しく感じられるのは、内容が難しいからではなく、否定を配ると AND と OR が入れ替わるという「符号の反転」に似た操作を忘れやすいからです。私は生徒に「覚えるより4行書け」と言っています。そのほうが速く、間違えません。
ちなみに前述の「情報Ⅰ」教員研修用教材の演習1は、まさに「A and B の領域を反転したもの」「A or B の領域を反転したもの」のベン図を描かせる問題になっています。反転した図を描くと NAND(否定論理積)と NOR(否定論理和)が現れ、それが (NOT A) OR (NOT B) と (NOT A) AND (NOT B) の図と一致することが、目で分かるようになっています。
3-4 検索の絞り込みは論理演算そのもの
検索エンジンで「共通テスト 情報」と2語を並べると、両方を含むページに絞られます。これは AND 検索であり、「共通テストを含むページの集合」と「情報を含むページの集合」の共通部分をとる操作です。除外検索は NOT、いずれかを含む検索は OR にあたります。
ここで大事なのは、検索が論理演算に「たとえられる」のではなく、検索システムが内部で本当に論理演算をしているということです。多くの全文検索は、語ごとに「どの文書に出現するか」を1ビットずつ記録した索引を持っていて、2語のAND検索はそのビット列同士の AND 演算になります。だから2語目を足すと結果が減り(AND は集合を狭める)、OR を使うと増えます。検索結果の増減は、ベン図の面積の増減とまったく同じ理屈で説明できるのです。
4. 手で確かめる
4-1 真理値表を全ケース書き下す
入力が2つなら4行、3つなら8行、n個なら2のn乗行。これが真理値表の全体です。
| A | B | AND(論理積) | OR(論理和) | XOR(排他的論理和) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
XOR は「どちらか一方だけが1のとき1」です。教員研修用教材の演習1(3)がこれにあたります。OR と XOR の違いは1行目から3行目ではなく、4行目にだけ出ます(OR は1、XOR は0)。ここを取り違えるのが、最も多い失点です。
4-2 ベン図で確かめる(手描きの図で追う)
2つの円が作る4領域を、真理値表の4行と対応させて塗ります。下の6枚は、すべて同じ2円に対して塗り方だけを変えたものです。
最後の2枚(赤で塗った図)を見比べてください。まったく同じ図になっています。これがド・モルガンの法則の、図による証明です。「Aの外」と「Bの外」の共通部分をとると、必然的に「どちらの円にも入らない外側」だけが残るのです。
4-3 Python で実際に実行して確かめる
以下は私が実際に実行して、出力を確認したコードです。手元のPythonでそのまま動きます。
# ド・モルガンの法則を全4通りで検証する
print("A B | not(A and B) | (not A) or (not B)")
for a in (False, True):
for b in (False, True):
left = not (a and b)
right = (not a) or (not b)
print(f"{str(a):5} {str(b):5} | {str(left):12} | {str(right)}")
実行結果はこうなります。
A B | not(A and B) | (not A) or (not B)
False False | True | True
False True | True | True
True False | True | True
True True | False | False
4行すべてで左辺と右辺が一致しました。これで「証明した」と言ってよいのです。入力の全パターンを尽くしているからです。
ビット演算でも同じことが確かめられます。
print(bin(0b1100 & 0b1010)) # AND
print(bin(0b1100 | 0b1010)) # OR
print(bin(0b1100 ^ 0b1010)) # XOR
実行結果は上から 0b1000、0b1110、0b110 です。1100 と 1010 の各桁を独立に AND / OR / XOR しているだけで、4桁ぶんをまとめて処理しても、中身は1桁ぶんの真理値表と同じです。なお2026年度の共通テスト情報Ⅰでは、第2問Bで「ビット演算による画像の透過・重ね合わせ」が題材になり、真理値表に基づくビットごとのOR演算や、どの論理演算を使うべきかを考える設問が出たと分析されています(東進「共通テスト2026 情報Ⅰ 全体概観・設問別分析」2026年8月3日取得)。
5. 共通テストではこう出る(重要度 S)
5-1 出題実績は一次資料で確認できる
大学入試センターが公表した「令和7年度大学入学共通テスト 試作問題『情報』の概要」によれば、試作問題『情報Ⅰ』第1問の問3は、「コンピュータの基本的な仕組みである論理回路を理解しているか、示された演算処理を実現するための真理値表及び論理回路を考察できるか」を問う設問と説明されています。配点は6点。第1問は問1が4点、問2が6点、問3が6点、問4が4点の計20点という構成です。
出典:独立行政法人大学入試センター「令和7年度大学入学共通テスト 試作問題『情報』の概要」(PDF)/2026年8月3日取得
つまり論理演算は、大学入試センター自身が「問う」と明言している数少ない具体的項目です。私がこの講の重要度を S にしているのは、このためです。
さらに、共通テスト用プログラム表記の仕様のほうにも論理演算は入っています。同じ資料の「5. 共通テスト用プログラム表記の例示」には、比較演算として == != > < >= <= が、論理演算として and(論理積)、or(論理和)、not(否定) の3つが明示されています。プログラムの問題で条件式を読む時点で、この講の内容が前提になっているわけです。
5-2 出題のされ方(設問の構造)
共通テストの問題文は大学入試センターの著作物ですので、ここでは転載せず、構造だけを整理します。
- 日常の状況を論理演算に翻訳させる型。「こういうときにランプを点ける」といった条件を文章で与え、それを満たす真理値表を選ばせる、あるいは回路図の空欄に AND / OR / NOT を入れさせる。翻訳作業が本体で、演算そのものは易しい。
- 真理値表と回路図・ベン図の対応を問う型。表が与えられて図を選ぶ、または図が与えられて表を完成させる。
- プログラムの条件式の中で問う型。条件式が成り立つ場合を答えさせる。論理演算単独の問題に見えないので、取りこぼしやすい。
- ビット列に対する演算として問う型。画像や信号のデータに対し、桁ごとに AND / OR を施す。
5-3 引っかけはこの5つ
| 引っかけ | 正しい理解 |
|---|---|
| OR と XOR の混同 | 情報の OR は「両方でもよい」。A=1, B=1 の行で必ず差が出る |
| NOT の作用範囲 | not A and B は (not A) and B。not は and より強く結び付く。カッコを自分で補って読む |
| ド・モルガンで AND/OR を入れ替え忘れる | 「両方60点以上ではない」=「少なくとも一方が60点未満」。「両方60点未満」ではない |
| AND 検索で結果が増えると思う | 語を足すほど条件は厳しくなり、結果は減る |
| NOT A に B が入らないと思う | NOT A の領域は、B の円の一部を必ず含む |
6. 情報Ⅱではこうなる
情報Ⅰでの論理演算は、「コンピュータの中で計算が組み立てられる仕組み」として、つまりハードウェア寄りの文脈で扱われます。前述のとおり教員研修用教材でも、AND・OR・NOT から半加算器を作る流れになっていました。
ところが情報Ⅱでは、同じ AND・OR・NOT が「大量のデータから必要な行を取り出す道具」として再登場します。文脈がハードウェアからデータサイエンスへ移るのです。
文部科学省の「情報Ⅱ」教員研修用教材の第3章「情報とデータサイエンス」は、学習11を 「データと関係データベース」 に充てています。そこでは表形式データを蓄積する方法として関係データベース(RDB)を挙げ、RDB を操作するためには SQL(Structured Query Language)を使うと述べています。RDB では行のことをレコード(タプル)、列のことを属性(カラム)と呼ぶことも明記されています。続く学習12「大量のデータの収集と整理、整形」では、Python の pandas を使ってデータフレームからデータを抽出したり集計したりし、RDB と同じように2つのデータを結合したり重複を取り除いたりする作業が扱われます。
出典:文部科学省「高等学校情報科『情報Ⅱ』教員研修用教材」第3章前半(PDF)/2020年7月公開/2026年8月3日取得
この「抽出する」という操作こそ、論理演算の出番です。SQL の WHERE 句は行を絞り込む部分であり、そこで使う AND・OR・NOT は、本講で扱ったものと完全に同一のものです。実際に SQLite で実行して確認した例を挙げます。
CREATE TABLE seito(name TEXT, math INT, info INT);
INSERT INTO seito VALUES('A',80,90),('B',80,50),('C',40,90),('D',40,50);
SELECT name FROM seito WHERE NOT (math >= 60 AND info >= 60);
SELECT name FROM seito WHERE math < 60 OR info < 60;
実行結果は、どちらの SELECT 文も B・C・D の3件でぴったり一致しました。SQL の WHERE 句の中でも、ド・モルガンの法則はそのまま成り立っているのです。「数学も情報も60点以上、という条件を満たさない生徒」と「数学が60点未満か、情報が60点未満の生徒」は、同じ生徒の集まりを指します。
情報Ⅰと情報Ⅱの違いを表にまとめます。
| 情報Ⅰ | 情報Ⅱ | |
|---|---|---|
| 論理演算の役割 | 計算を組み立てる部品(半加算器) | データを絞り込む道具(WHERE句・フィルタ) |
| 扱う対象 | 1ビット、または短いビット列 | 数万行の表・データフレーム |
| 誤りの代償 | 答えが合わない | 間違ったデータで分析してしまう |
3行目が本質です。ベン図の塗り間違いは、情報Ⅰでは失点で済みます。しかし情報Ⅱのデータ分析では、間違った母集団を分析して、間違った結論を出すことにつながります。「AかつB」で絞るべきところを「AまたはB」で絞れば、対象は膨れ上がり、平均値はまるで別のものになってしまう。ここが情報Ⅱの学習で最初につまずく場所であり、だからこそ情報Ⅰの段階で真理値表を4行書き切る習慣が効いてくるのです。
なお日本文教出版の情報Ⅱ教科書では、第3章にリレーショナルデータベースの設計が置かれ、章末実習で SQL 操作を扱う構成になっています(同社の教科書紹介ページによります。1社の教科書の構成であり、「情報Ⅱの内容」そのものではない点にご注意ください)。
7. この講のまとめ
- AND・OR・NOT は「これ以上分解できない」ではなく「これだけあれば全部作れる」という意味での基本である
- 「属する=1、属さない=0」と決めた瞬間に、集合演算と論理演算は同じものになる
- 真理値表の4行とベン図の4領域は1対1に対応する。だから網羅できる
- ド・モルガンの法則は暗記対象ではない。4行書けば証明が終わる
- 検索の絞り込みは論理演算の比喩ではなく、論理演算そのもの
- 情報Ⅱでは同じ演算が SQL の WHERE 句・データフレームのフィルタとして再登場する
関連して、『藤原進之介の最強120講義』シリーズ一覧もあわせてご覧ください。数学の学習で行き詰まっている方は 学習状況の診断ページ、高校2年生の方は 高2向けの案内、オンライン指導の仕組みを知りたい方は オンライン数学塾ガイド が参考になります。
情報Ⅰ・数学の学習について相談したい方へ
数強塾では、進路相談・学習相談を無料で受け付けています。実際の授業を受けてみたい方には体験授業(3,000円・税込)もご用意しています。「論理演算は分かったけれど、プログラミングの問題になると手が止まる」といったご相談も歓迎です。
