AP科目Aの核心2:論理式・集合・真理値表・ド・モルガンの法則

応用情報技術者試験の科目Aに必要な集合とベン図、論理演算と優先順位、含意、真理値表、ド・モルガンの法則を、例題とオリジナル演習問題で学びます。

応用情報技術者試験科目A論理演算集合

AP科目A・第2回 · 2026年度・シラバスVer.7.2に基づく独立した学習資料です。IPAとの提携はなく、合格を保証しません。 シリーズ一覧を見る

対象範囲と注意事項 本記事は2026年の試験対策向けに作成したもので、学習範囲はIPA公式「応用情報技術者試験(レベル3)シラバス Ver.7.2」に基づいています。 MotitoryはIPA(独立行政法人情報処理推進機構)とは関係がなく、本記事はIPAの確認・承認を受けたものではありません。本記事で学習しても合格を保証するものではありません。 演習問題はすべてMotitoryオリジナルであり、IPAの公式過去問題ではありません。受験前には、IPAのWebサイトで最新のシラバスと試験情報を必ず確認してください。

目次

  1. 学習目標
  2. シラバスVer.7.2との対応
  3. 用語対応表(日本語/韓国語/英語)
  4. 集合とベン図
  5. 命題と真理値
  6. 論理演算:NOT・AND・OR・XOR・NAND・NOR
  7. 演算の優先順位と括弧
  8. 含意
  9. 真理値表の作り方と比べ方
  10. ド・モルガンの法則とその他の基本法則
  11. 例題
  12. よくある落とし穴
  13. 演習問題(Motitoryオリジナル)
  14. 最終セルフチェックと復習計画
  15. 出典

1. 学習目標

この回を終えたら、次のことができるようになることを目指します。

  • 集合の記号(∪、∩、補集合、⊆)を読み、ベン図の対応する領域を特定できる。
  • 命題と真理値とは何かを説明できる。
  • NOT、AND、OR、XOR、NAND、NORを計算し、演算の優先順位を正しく適用できる。
  • 真理値表を作り、それを使って二つの式が等価かどうかを判定できる。
  • ド・モルガンの法則を集合の形と命題の形の両方で使える。
  • このテーマの科目A問題でよく出る落とし穴に気づける。

2. シラバスVer.7.2との対応

この回は、IPAシラバスVer.7.2の次の項目を扱います。

  • 大分類1:基礎理論/中分類1:基礎理論/1. 離散数学/(4)集合と命題
  • 大分類1:基礎理論/中分類1:基礎理論/1. 離散数学/(5)論理演算

(5)の項目に含まれるカルノー図は、この回では扱いません。

3. 用語対応表(日本語/韓国語/英語)

試験問題は日本語で出題されるため、概念と一緒に日本語の用語を押さえておきましょう。

日本語 韓国語 英語
集合 집합 set
要素 원소 element
全体集合 전체집합 universal set
空集合 공집합 empty set
和集合 합집합 union
積集合 교집합 intersection
補集合 여집합 complement
部分集合 부분집합 subset
ベン図 벤 다이어그램 Venn diagram
命題 명제 proposition
真理値 진릿값 truth value
真/偽 참 / 거짓 true / false
否定 부정 negation (NOT)
論理和 논리합 OR
論理積 논리곱 AND
排他的論理和 배타적 논리합 XOR
否定論理和 부정 논리합 NOR
否定論理積 부정 논리곱 NAND
含意 함의 implication
真理値表 진리표 truth table
ド・モルガンの法則 드모르간의 법칙 De Morgan’s laws
分配則 분배 법칙 distributive law
論理関数 논리 함수 logical function

4. 集合とベン図

集合とは、範囲がはっきり定まった要素の集まりです。考察の対象となる要素をすべて含む集合を全体集合 U と呼びます。

表記 意味 含まれる要素
A ∪ B 和集合 Aに属する、またはBに属する要素(両方に属してもよい)
A ∩ B 積集合 AにもBにも属する要素
Aᶜ 補集合 Uに属するがAには属さない要素
A ⊆ B 部分集合 Aのすべての要素がBにも属する
A − B 差集合 Aに属しBに属さない要素(= A ∩ Bᶜ)

表記について: 本記事では、Xの補集合を Xᶜ と書きます。試験問題では集合(または式)の上に横線を引いて表すことが多いですが、意味は同じです。

ベン図での読み方。 二つの集合A、Bは、Uを四つの領域に分けます。

領域 集合の式
Aだけに属する A ∩ Bᶜ
Bだけに属する Aᶜ ∩ B
両方に属する A ∩ B
どちらにも属さない Aᶜ ∩ Bᶜ

A、Bと∪、∩、補集合で作った式は、結局この四つの領域のうちどれを選ぶかを表しているにすぎません。二つの集合の式を比べるときは、それぞれが塗る領域を書き出してみましょう。

要素の個数。 和集合の要素数は |A ∪ B| = |A| + |B| − |A ∩ B| です。積集合を引くのは、そのままだと二重に数えてしまうからです。また、「どちらにも属さない」領域が空とは限らないことにも注意しましょう:|U| = |A ∪ B| + |Aᶜ ∩ Bᶜ|。

5. 命題と真理値

命題とは、真か偽かがはっきり決まる文のことです。「7は素数である」は命題(真)です。一方、「xは3より大きい」は、xの値が決まるまでは命題ではありません。

命題が真か偽かを表す値を真理値といいます。論理演算では、通常、真を 1、偽を 0 と書きます。

集合と命題は密接に対応しています。「要素がAに属する」を一つの命題とみなすと、演算は次のように対応します。

集合 論理
A ∪ B A OR B
A ∩ B A AND B
Aᶜ NOT A
U(全体集合) 1(常に真)
∅(空集合) 0(常に偽)
A ⊆ B A → B が常に真

4節のベン図の四つの領域も、真理値表の四つの入力行 (A, B) = (1, 0), (0, 1), (1, 1), (0, 0) にそれぞれ対応します。

6. 論理演算:NOT・AND・OR・XOR・NAND・NOR

よく使われる表記:NOT A は ¬A またはAの上の横線、A AND B は A ∧ B または A · B、A OR B は A ∨ B または A + B、A XOR B は A ⊕ B と書きます。本記事では ¬、∧、∨、⊕ を使います。

A B ¬A A ∧ B A ∨ B A ⊕ B ¬(A ∧ B) NAND ¬(A ∨ B) NOR
0 0 1 0 0 0 1 1
0 1 1 0 1 1 1 0
1 0 0 0 1 1 1 0
1 1 0 1 1 0 0 0

ポイント:

  • AND(論理積) は、両方の入力が1のときだけ1です。
  • OR(論理和) は、入力の少なくとも一方が1なら1です。両方が1の場合も含むので 1 ∨ 1 = 1 です。「+」表記でも 1 + 1 = 1 であり、2ではありません。
  • XOR(排他的論理和) は、二つの入力が異なるときだけ1です。両方が1の場合を除く「排他的」な論理和です。
  • NAND(否定論理積) と NOR(否定論理和) は、それぞれANDとORの否定です。

7. 演算の優先順位と括弧

一般的な約束は NOT → AND → OR の順 です。したがって、

A ∨ B ∧ ¬C は A ∨ (B ∧ (¬C)) を意味します。

「+ と ·」の表記では通常の算数と同じように、A + B · C は A + (B · C) です。

試験で守るルール:

  1. 問題文で優先順位や記号の意味が定義されている場合は、問題文の定義に従います。
  2. XORの優先順位はテキストによって統一されていないため、XORと他の演算が混ざる式には通常括弧が必要です。自分で式を書き換えるときも、少しでも紛らわしければ括弧を付けましょう。
  3. ¬ は直後のものだけにかかります。¬A ∧ B は (¬A) ∧ B であり、¬(A ∧ B) とは異なります。式全体の上に横線が引かれている場合は、線の下にあるすべてが否定されます。

8. 含意

「AならばB」を A → B(含意)と書きます。

A B A → B
0 0 1
0 1 1
1 0 0
1 1 1
  • A → B が偽になるのは、Aが真でBが偽のときだけです。
  • A → B は ¬A ∨ B と等価です。
  • 集合で見ると、「A → B が常に真」は A ⊆ B を意味します。
  • 逆(B → A)は A → B と等価ではありません((0, 1) と (1, 0) の行を確認してみましょう)。

9. 真理値表の作り方と比べ方

  1. 入力変数がn個なら、真理値表は 2ⁿ行 です(2変数で4行、3変数で8行)。
  2. 2進数を数えるように、入力を規則正しく並べます:00、01、10、11(3変数なら000から111まで)。こうすれば行の抜けを防げます。
  3. 括弧の内側から外側へ、式の途中段階ごとに列を一つずつ追加します。
  4. 二つの式が等価なのは、すべての行で結果の列が一致するときだけです。 1行でも異なれば等価ではなく、その行が反例になります。

10. ド・モルガンの法則とその他の基本法則

ド・モルガンの法則 ― 各項を否定し、同時に演算子を入れ替えます。

集合の形 命題の形
(A ∪ B)ᶜ = Aᶜ ∩ Bᶜ ¬(A ∨ B) = ¬A ∧ ¬B
(A ∩ B)ᶜ = Aᶜ ∪ Bᶜ ¬(A ∧ B) = ¬A ∨ ¬B

言葉にすると、「(AまたはB)ではない」=「AでもBでもない」、「(AかつB)ではない」=「少なくとも一方ではない」です。

命題の形を真理値表で確認します。

A B ¬(A ∨ B) ¬A ∧ ¬B ¬(A ∧ B) ¬A ∨ ¬B
0 0 1 1 1 1
0 1 0 0 1 1
1 0 0 0 1 1
1 1 0 0 0 0

すべての行で列が一致するので、二つの法則はどちらも成り立ちます。

その他の基本法則(∨、∧、1、0 を ∪、∩、U、∅ に置き換えても、それぞれ成り立ちます):

法則 形
二重否定 ¬¬A = A
補元則 A ∨ ¬A = 1、A ∧ ¬A = 0
恒等則 A ∨ 0 = A、A ∧ 1 = A
零元則 A ∨ 1 = 1、A ∧ 0 = 0
べき等則 A ∨ A = A、A ∧ A = A
交換則・結合則 同じ演算子どうしでは、順序やまとめ方を変えても結果は変わらない
分配則 A ∧ (B ∨ C) = (A ∧ B) ∨ (A ∧ C)、A ∨ (B ∧ C) = (A ∨ B) ∧ (A ∨ C)
吸収則 A ∨ (A ∧ B) = A、A ∧ (A ∨ B) = A

二つ目の分配則(ORがANDに対して分配される)は通常の算数にはない形なので、忘れやすい点に注意しましょう。

11. 例題

例題1:真理値表による等価性の確認

問題: A ⊕ B = (A ∨ B) ∧ ¬(A ∧ B) であることを示せ。

A B A ∨ B A ∧ B ¬(A ∧ B) (A ∨ B) ∧ ¬(A ∧ B) A ⊕ B
0 0 0 0 1 0 0
0 1 1 0 1 1 1
1 0 1 0 1 1 1
1 1 1 1 0 0 0

最後の2列が4行すべてで一致するので、二つの式は等価です。言葉で読むと、XORは「少なくとも一方が1」かつ「両方が1ではない」です。

例題2:集合と補集合

問題: U = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}、A = Uに含まれる2の倍数、B = Uに含まれる3の倍数とする。(A ∪ B)ᶜ を求め、それが Aᶜ ∩ Bᶜ と等しいことを確認せよ。

  1. A = {2, 4, 6, 8, 10}、B = {3, 6, 9}
  2. A ∪ B = {2, 3, 4, 6, 8, 9, 10}
  3. (A ∪ B)ᶜ = {1, 5, 7}
  4. Aᶜ = {1, 3, 5, 7, 9}、Bᶜ = {1, 2, 4, 5, 7, 8, 10}
  5. Aᶜ ∩ Bᶜ = {1, 5, 7}

ド・モルガンの法則のとおり、どちらも {1, 5, 7} です。個数でも確認すると、|A ∪ B| = 5 + 3 − |{6}| = 7 で、外側に残る要素は 10 − 7 = 3個です。

例題3:含意の否定

問題: ¬(A → B) を簡単にせよ。

  1. A → B = ¬A ∨ B
  2. ¬(¬A ∨ B) = ¬¬A ∧ ¬B(ド・モルガン)
  3. = A ∧ ¬B(二重否定)

つまり「AならばB」が成り立たないのは、ちょうど「AであってBでない」場合です。集合で見ると、A ⊆ B が成り立たないのは、ちょうど A ∩ Bᶜ が空集合でないときです。

12. よくある落とし穴

  1. ド・モルガンの適用が半分だけ。 項だけ否定して∧/∨を入れ替えない、または演算子だけ入れ替えて項を否定しないと誤りになります。
  2. 否定の範囲。 ¬A ∧ B と ¬(A ∧ B) は別の式です。
  3. ORを排他的に解釈する。 ORは両方が1の場合を含みます。それを除くのはXORだけです。
  4. 優先順位の無視。 A ∨ B ∧ C を左から (A ∨ B) ∧ C と読むと、一般的な約束では誤りです。
  5. 含意とその逆の混同。 A → B は B → A を意味しません。
  6. 「どちらでもない」と「両方ではない」。 「AでもBでもない」は (A ∪ B)ᶜ = Aᶜ ∩ Bᶜ、「両方ではない」は (A ∩ B)ᶜ = Aᶜ ∪ Bᶜ です。
  7. 二つ目の分配則を忘れる。 A ∨ (B ∧ C) = (A ∨ B) ∧ (A ∨ C)。
  8. 個数計算のミス。 積集合を引き忘れる、または両方の集合の外側の領域を見落とすケースです。
  9. 真理値表の行の抜け。 n変数なら必ず2ⁿ行が必要です。

13. 演習問題(Motitoryオリジナル)

Motitoryオリジナル/IPA公式過去問題ではありません。 以下の4問は、すべてMotitoryが演習用に独自に作成したものです。

問1 ― 集合の式の補集合

全体集合Uの部分集合A、Bについて、(A ∩ Bᶜ)ᶜ と等しいものはどれか。

  • ア Aᶜ ∩ B
  • イ A ∪ Bᶜ
  • ウ Aᶜ ∪ Bᶜ
  • エ Aᶜ ∪ B

正解:エ

解き方: ド・モルガンの法則より (A ∩ Bᶜ)ᶜ = Aᶜ ∪ (Bᶜ)ᶜ です。補集合の補集合は元の集合なので (Bᶜ)ᶜ = B となり、Aᶜ ∪ B です。ベン図で見ると、A ∩ Bᶜ は「Aだけに属する」領域なので、その補集合は残りの「Bだけに属する」「両方に属する」「どちらにも属さない」領域であり、これはちょうど Aᶜ ∪ B です。

選択肢ごとの解説:

  • ア 誤り。項は否定したものの、∩を∪に入れ替えていません。反例:AとBの両方に属する要素は Aᶜ ∪ B には属しますが、Aᶜ ∩ B には属しません。
  • イ 誤り。演算子は入れ替えたものの、項を否定していません。反例:Aだけに属する要素は正解の集合には属しませんが、A ∪ Bᶜ には属します。
  • ウ 誤り。Bᶜ をBに戻さず(二重の補集合)、そのまま残しています。反例:Aだけに属する要素は Bᶜ に属するので Aᶜ ∪ Bᶜ には属しますが、正解の集合には属しません。
  • エ 正しい。両方の項を否定し、演算子も入れ替えています。

問2 ― XORのように振る舞う式

論理変数A、Bは0または1の値をとる。AとBの値が異なるときだけ1になる式はどれか。

  • ア A ∨ B
  • イ ¬(A ∧ B)
  • ウ (A ∧ ¬B) ∨ (¬A ∧ B)
  • エ (A ∨ ¬B) ∧ (¬A ∨ B)

正解:ウ

解き方: 「値が異なる」とは (A, B) = (1, 0) または (0, 1) のことです。A ∧ ¬B は (1, 0) のときだけ、¬A ∧ B は (0, 1) のときだけ1になります。その論理和は、ちょうどこの2行だけで1になり、これは A ⊕ B の定義そのものです。

A B ア イ ウ エ
0 0 0 1 0 1
0 1 1 1 1 0
1 0 1 1 1 0
1 1 1 0 0 1

選択肢ごとの解説:

  • ア 誤り。ORは両方が1の場合を含むため、値が同じ (A, B) = (1, 1) でも1になります。
  • イ 誤り。これはNANDで、(A, B) = (0, 0) でも1になります。
  • ウ 正しい。(1, 0) と (0, 1) のときだけ1です。
  • エ 誤り。値が同じときに1になる式、つまりXORの否定(一致)です。どちらを否定するかを取り違えると選びやすい落とし穴です。

問3 ― 演算の優先順位

優先順位を NOT > AND > OR とする。X = ¬A ∨ B ∧ C の値が0になる入力 (A, B, C) はどれか。

  • ア (A, B, C) = (1, 1, 0)
  • イ (A, B, C) = (0, 0, 0)
  • ウ (A, B, C) = (0, 1, 0)
  • エ (A, B, C) = (1, 1, 1)

正解:ア

解き方: 与えられた優先順位より X = (¬A) ∨ (B ∧ C) です。Xが0になるには ¬A = 0 かつ B ∧ C = 0、つまり A = 1 かつ B ∧ C = 0 である必要があります。(1, 1, 0) なら ¬A = 0、B ∧ C = 1 ∧ 0 = 0 なので X = 0 です。

選択肢ごとの解説:

  • ア 正しい。両方の部分が0なので X = 0 です。
  • イ 誤り。A = 0 なので ¬A = 1 となり、X = 1 です。式を左から (¬A ∨ B) ∧ C と読むと0になるため、この選択肢を誤って選ぶおそれがあります。
  • ウ 誤り。やはり A = 0 なので ¬A = 1 となり、X = 1 です。左から読む方法ではここでも0になり、その読み方が当てにならないことがわかります。
  • エ 誤り。¬A = 0 ですが B ∧ C = 1 なので、X = 1 です。

問4 ― 補集合を使った個数の計算

全体集合Uの要素数は50である。部分集合A、Bについて |A| = 30、|B| = 25、|Aᶜ ∩ Bᶜ| = 5 のとき、A ∩ B の要素数はいくつか。

  • ア 5
  • イ 10
  • ウ 25
  • エ 45

正解:イ

解き方: ド・モルガンの法則より Aᶜ ∩ Bᶜ = (A ∪ B)ᶜ なので、|A ∪ B| = 50 − 5 = 45 です。したがって |A ∩ B| = |A| + |B| − |A ∪ B| = 30 + 25 − 45 = 10 です。

選択肢ごとの解説:

  • ア 誤り。30 + 25 − 50 で計算した値で、A ∪ B = U と仮定し、どちらにも属さない5個の要素を無視しています。
  • イ 正しい。
  • ウ 誤り。|A ∩ B| = 25 になるには B ⊆ A である必要がありますが、そうすると |A ∪ B| = |A| = 30 となり、|A ∪ B| = 45 と矛盾します。
  • エ 誤り。45は途中の値である |A ∪ B| であり、積集合ではありません。

14. 最終セルフチェックと復習計画

前の節を見返さずに、次のことができるか確認しましょう。

  • 2集合のベン図に (A ∪ B)ᶜ と (A ∩ B)ᶜ を塗り分け、違いを説明できる。
  • AND、OR、XOR、NAND、NOR、A → B の真理値表を何も見ずに書ける。
  • 一般的な優先順位に従って A ∨ B ∧ ¬C に括弧を付けられる。
  • ド・モルガンの法則を集合の形と命題の形の両方で使える。
  • 真理値表で等価性を証明または反証し、成り立たない場合は反例となる行を示せる。

間隔をあけた復習の提案: 約1日後、3日後、7日後に、演習問題4問をノートを見ずに解き直してみましょう。結果の記録は、必要なら各自で管理してください。本記事は学習者のデータを収集しません。

15. 出典

本記事の解説・例題・演習問題は、Motitoryが独自に作成したものです。IPAの過去問題や第三者の解説から引用したものではありません。

ブログへ