“男性のうち, 20歳未満の人と65歳以上の人” に関する情報を検索するための検索式として, 適切なものはどれか。
平成25年度 秋期 ITパスポート試験 問54
この問題の解説と、これまでの解答の記録です。
問 54
不正解ア
男性 AND (20歳未満 AND 65歳以上) は、男性であり、かつ20歳未満であり、かつ同時に65歳以上である人を意味する。しかし 20歳未満と65歳以上は互いに重ならない年齢層なので、この 2 つを AND で結ぶと条件を同時に満たす人は 1 人も存在せず、検索結果は必ず空になる。日本語の「と」をそのまま AND に置き換えてしまう典型的な誤りである。
- イ
正解 正解はイ。検索式を組み立てるときは、日本語の条件文を集合の演算に置き換えて考える。AND (論理積) は「両方の条件を同時に満たすものだけ」を絞り込む演算、OR (論理和) は「どちらか一方でも満たすものすべて」を集める演算である。設問の「男性のうち, 20歳未満の人と65歳以上の人」を分解すると、まず「男性のうち」は男性という集合の中に限定するという絞り込みなので、性別の条件は AND で結ぶ。次に「20歳未満の人と65歳以上の人」は、20歳未満という年齢層と65歳以上という年齢層の 2 つをまとめて対象にしたいという意味であり、どちらか一方に当てはまれば対象になるので OR で結ぶ。年齢の条件どうしは先にひとまとめにして評価する必要があるため括弧でくくり、その全体と男性を AND でつなぐ。こうして 男性 AND (20歳未満 OR 65歳以上) という式が得られ、これはイと一致する。この式で取り出される集合は、20歳未満の男性と65歳以上の男性の 2 つを合わせたものになり、設問の意図どおりである。
不正解ウ
男性 OR (20歳未満 AND 65歳以上) は、括弧の中が上記のとおり該当者ゼロの条件なので、実質的に「男性」だけを検索した式と同じになる。その結果、年齢に関係なくすべての男性が抽出されてしまい、20歳以上65歳未満の男性まで含まれる点で設問の条件を満たさない。年齢による絞り込みが効いていないので誤り。
不正解エ
男性 OR (20歳未満 OR 65歳以上) は、すべての条件を OR で結んでいるため、男性であるか、20歳未満であるか、65歳以上であるかのいずれか 1 つでも当てはまれば抽出される。その結果、男性全員に加えて20歳未満の女性や65歳以上の女性まで含まれてしまい、「男性のうち」という絞り込みが失われる。性別条件は AND で結ばなければならないので誤り。
- 検索式における論理演算の基本: AND (論理積) は複数条件を同時に満たすものだけに絞り込むので対象は狭くなり、OR (論理和) はいずれかの条件を満たすものを集めるので対象は広がる。日本語の「〜のうち」「〜かつ」は AND、「〜または」「〜のいずれか」は OR に対応する。
- 日本語の「と」は文脈によって AND にも OR にもなる。「20歳未満の人と65歳以上の人」のように互いに両立しない (重ならない) 条件を並べている場合は、両方まとめて集めたいという意味なので OR である。両立しない条件を AND で結ぶと結果が空集合になる、という検算で正誤を確かめられる。また、演算の順序を明示するために OR の部分を括弧でくくる点も重要である。