回 1-3 分野 1 数と式
必要十分条件は、
読み終えたら2 つの
この頁の流れ
必要条件、
その if の 書き換え、 本当に 同じ 意味ですか
if not (age >= 18 and paid): をif age < 18 and not paid: と
この 2 つは同じif age < 18 or not paid: です。
2 つの条件が、
集合と、 かつ、 または、でない
条件を
| 言葉 | 記号 | 意味 | P と | Python |
|---|---|---|---|---|
| 共通部 | P ∩ Q | 両方に入る物 | 6 | P & Q |
| 和集合 (または) | P ∪ Q | どちらかに入る物 | 2, 3, 4, 6, 8, 9, 10 | P.union(Q) |
| 補集合 (でない) | P̄ | 全体の | 1, 3, 5, 7, 9 | U - P |
| 部分集合 | P ⊆ Q | P の | 4 の | A <= P |
| 空集合 | ∅ | 1 つも | 7 の | set() |
数学のor も
ド・モルガンの法則
「でない」を
- (A かつ B) でない
= (A でない ) または (B でない) - (A または
B) でない = (A でない ) かつ (B でない)
Python で書くと not (a and b) は not a or not b、not (a or b) は not a and not b と
必要条件と十分条件
「p ならば q」が
- p は
q である ための 十分条件 (p が 言えれば、 q を 言うのに十分) - q は
p である ための 必要条件 (p であるには、 q が 必ず要る)
覚え方は
集合で 見ると、 大きい方が必要
p を
整数 n で、
見分ける手順
- p ⇒ q が
正しいかを 見る。 正しくなければ、 p を 満たすのに q を 満たさない 例 (反例) を 1 つ挙げる - q ⇒ p が
正しいかを 同じように見る - 2 つの結果を、
次の 表に 当てはめる
| p ⇒ q | q ⇒ p | p は |
|---|---|---|
| 正しい | 正しい | 必要十分条件 |
| 正しい | 正しくない | 十分条件であるが、 |
| 正しくない | 正しい | 必要条件であるが、 |
| 正しくない | 正しくない | 必要条件でも |
正しくない
例題
実数 x で、
実数 a、
対偶は同じ真偽
p ⇒ q に
日常の言葉で
「東京都に
動かして確かめる
1 本目は、
動かす 真理値表で 4 通り全部を試す
▶ 実行ボタンを押すと結果がここに表示されます
実行すると、次の通りに出ます
a b 元 ドモ 誤り
1 1 0 0 0
1 0 1 1 0
0 1 1 1 0
0 0 1 1 1元の
2 本目は、2 つの条件の
動かす 必要と十分を全部の値で調べる
▶ 実行ボタンを押すと結果がここに表示されます
実行すると、次の通りに出ます
x=1 と x*x=1
十分 反例 -1
4の倍数 と 偶数
十分 反例 -18
x>3 と x>2
十分 反例 3
not x>0 と x<=0
必要十分 反例 None
偶数 と 3の倍数
どちらでもない 反例 -20出力の 2 行目は
3 本目は、<= は
動かす 集合で包含とド・モルガンを確かめる
▶ 実行ボタンを押すと結果がここに表示されます
実行すると、次の通りに出ます
P&Q [6]
P|Q [2, 3, 4, 6, 8, 9, 10]
Pでない [1, 3, 5, 7, 9]
F<=P True
P<=F False
ドモ [1, 5, 7] True4 の
「全部の 場合」から漏れる所
全部の
範囲が狭すぎる
「x² > x」と「x > 1」を
小数の NaN
Python のfloat("nan")) が
動かす NaN では書き換えが同値でなくなる
▶ 実行ボタンを押すと結果がここに表示されます
実行すると、次の通りに出ます
-1.0 True True True
0.0 True True True
2.0 False False True
nan True False FalseNaN のnot x > 0 はx <= 0 はnot で
SQL の NULL
SQL では、NULL とのWHERE a = 1 と WHERE NOT (a = 1) を
動かす NULL の行はどちらの WHERE にも出ない
▶ 実行ボタンを押すと結果がここに表示されます
実行すると、次の通りに出ます
全部 3
where a = 1 1
where not (a = 1) 1
where a is null 1全部で 3 行なのに、a = 1 が 1 行、NOT (a = 1) が 1 行で、a IS NULL を
仕事で どう使うか
必要条件、
- if の
条件の 書き換え。 ド・モルガンで not を 中に 入れたら、 真理値表か 全部の 値で 同じかを確かめる - SQL の WHERE。NOT や
OR を 書き換えるときは、NULL の 行が どちらに 入るかを見る - テストの
境目。「x > 0」と「x >= 1」は 整数なら 同値だが、 小数なら 0.5 で 食い 違う。 境目の 両側と 0 を テストに入れる - 前提の
確かめ。 二分探索が 正しく 動くには、 データが 並んでいる ことが 必要条件。 並んでいるかを 確かめずに 使うと、 見つかる 物も 見つからない - 仕様の
言い 換え。 「全部の 項目が 入っていれば 送れる」は、 入っている ことが 送る ための 十分条件なのか、 必要条件なのかで、 作る 確かめが変わる
よくある問い
必要条件と 十分条件の 覚え方は ありますか
「p ⇒ q の
必要十分条件と 同値は 違いますか
同じ
必要条件でも 十分条件でもないのは、 どんな ときですか
どちらの
対偶と 逆は 何が 違いますか
p ⇒ q の
確認クイズ
答えだと
1 問目
実数 x に
2 問目
a とnot (a or b) と、
3 問目
x がnot (x > 0) と
説明課題
「x > 3 は x > 2 である
自分の
この回の 先の一歩
if の
もっと深く
この
一次資料
どれも 2026年10月30日に開いて、
- Boolean operations (Python 公式文書、英語)。and、
or、 not の 意味と、 左から 順に 評価して 結果が 決まったら 残りを 評価しないこと - Value comparisons (Python 公式文書、英語)。NaN との
大小の 比べが どれも 偽になること - Set Types (Python 公式文書、英語)。
<=が部分集合かを 返すこと、 union(|)、&、-が和集合、 共通部分、 差であること - NULL Handling in SQLite (SQLite、英語)。NULL を
含む式の扱い - Comparison Functions and Operators (PostgreSQL 公式文書、英語)。NULL との
普通の 比べが 真でも 偽でもなく NULL (不明) になること - 必要条件と
十分条件 (Wikipedia 日本語版) 。必要条件、十分条件、 必要十分条件の定義
次へ
分野 1 数と式の回
- 1-1数の表し方2 進数と
16 進数、桁の重み頁で読む - 1-2シグマと漸化式Σ の
読み方、 和の 公式、 漸化式とループ頁で読む - 1-3集合と必要十分かつ、
または、でない、 ド・モルガンこの回