平成22年度 春期 ITパスポート試験 問67 解説 数値の組合せと条件
表のA列とB列に0から9までの数字のすべての組合せが入っており,全部で100行ある。表からA列の値がB列の値以下である行をすべて取り除く。残りは何行あるか。
- ア 40
- イ 45 ✓ 正答
- ウ 50
- エ 55
解説
この問題は、全体数から除外すべき行数を引き算することで答えを導きます。
全100通りの組み合わせから、「AがB以下()」である行を特定し、その数を全体から引いてください。
- となる行数は、 の合計10通りです。
- となる行数は、全体の100通りから の10通りを引き、残ったものを半分に分けることで求められます。 通りです。
- これらを合わせると となる行は 通りあります。
- 最後に全体から除外する行を引きます。 通りが残ります。
数と関係性の把握
この問題では、2つの集合の全組み合わせ(直積)における特定の関係性を扱う「集合の包含関係」や「対称性」の概念を使っています。0から9までの各数字がA列とB列に網羅されているため、組み合わせの総数は となります。
数学的には、すべての組み合わせは以下の3つの排他的なグループに分類できます。
- グループ1:
- グループ2:
- グループ3:
今回求めたいのはグループ3( となる行)の数です。ここで、グループ1とグループ3は数字を入れ替えただけの対称な関係にあるため、必ず同じ数になります。
思考のステップ
試験本番で迷わないためには、以下の手順で構造を可視化しましょう。
- 全体像を把握する: のマトリックスを想像します。対角線上の要素(10個)が です。
- 対称性を利用する:対角線を除いた残りの90個のうち、半分は であり、残りの半分は です。
- 条件を整理する:問題文で「( かつ )」を取り除くとあるため、残るのは の部分だけであると読み替えます。
実務における条件分岐の考え方
この問題は、プログラミングやデータベース処理における「フィルタリング」の論理を問うています。例えば、顧客データから特定の条件を満たすレコードを除外して抽出する際、論理式を正しく記述できるかが重要です。
システム開発の現場では、条件式を複雑に書きすぎると思わぬバグを生むことがあります。この問題のように「全体から不要なものを引く」という考え方は、否定条件を用いたフィルタリングにおいて非常に役立ちます。また、データの偏りや分布を確認する際にも、こうした基本的な数え上げの感覚は、データのクレンジングや異常値検出の際に不可欠なスキルとなります。