札幌にある日本料理の店と函館にある日本料理の店をまとめて探したい。検索条件を表す論理式はどれか。
平成24年度 春期 ITパスポート試験 問69
テクノロジ系基礎理論 › 離散数学
这道题的解析和你的作答记录。
問69
頻出度★★☆
解説
問 69
错误ア
(「札幌」AND「函馆」)AND「日本料理」是只筛选出同时包含札幌和函馆这两个词的店的式子。AND 是缩小条件范围的运算(交集),而一家店通常不会同时位于札幌和函馆,因此检索结果几乎会是 0 条。要找的是「位于其中任意一地的店」,所以地名之间必须用 OR 而不是 AND 来连接。
错误イ
(「札幌」AND「函馆」)OR「日本料理」中,地名的条件和「日本料理」的条件是用 OR 并列的,因此只要满足「日本料理」这一项就会被命中。结果连东京、大阪等与札幌、函馆无关的地区的日本料理店也会全部被检索出来,按地区筛选完全不起作用。而且前半部分和 ア 一样是要求同时包含札幌和函馆的条件,所以地名一侧几乎不发挥作用。
- ウ
正解 要找的是「位于札幌的日本料理店」和「位于函馆的日本料理店」合在一起的集合。用集合写出来就是 (札幌 ∩ 日本料理) ∪ (函馆 ∩ 日本料理),把两边共有的「日本料理」提取出来后,就变成 (札幌 ∪ 函馆) ∩ 日本料理。把它改写成检索式,正是 ウ 的(「札幌」OR「函馆」)AND「日本料理」。地名是札幌或函馆都可以,所以用 OR 并列起来;在此基础上必须满足「是日本料理」这一条件,所以用 AND 相乘。括号加在地名一侧,使得 OR 只作用于地名、AND 作用于整体,这个结构是关键所在。
错误エ
(「札幌」OR「函馆」)OR「日本料理」是三个条件全部用 OR 连接的式子,实质上就等于「札幌 OR 函馆 OR 日本料理」。只要是札幌的店,不论菜系,拉面店和居酒屋也会被命中;只要是日本料理店,不论地区,全国各地的店都会被命中。OR 是扩大条件范围的运算(并集),所以想用来筛选的「必须是日本料理」这一条件必须用 AND 来连接。
ここがポイント
- 逻辑运算的性质:AND(逻辑与)缩小条件范围,只留下共同部分;OR(逻辑或)扩大条件范围,把满足其中任意一个条件的对象都收集起来。在检索式中,「必须满足的条件」用 AND 连接,「哪一个都可以的候选」用 OR 连接。
- 分配律与括号的作用:(A AND C) OR (B AND C) = (A OR B) AND C。「把 A 的 X 和 B 的 X 一起找出来」这类题目的常规解法,是把共同条件 X 用 AND 提取出来,把作为候选的 A、B 放进括号里用 OR 并列;括号的位置一变,检索范围就会变成完全不同的东西。
用語