ITパスポート試験 / 平成22年度 春期 ITパスポート試験 / 問67
certification-simodake-work

平成22年度 春期 ITパスポート試験 問67 解説 数値の組合せと条件

設問図

表のA列とB列に0から9までの数字のすべての組合せが入っており,全部で100行ある。表からA列の値がB列の値以下である行をすべて取り除く。残りは何行あるか。

  1. ア 40
  2. イ 45 ✓ 正答
  3. ウ 50
  4. エ 55

解説

この問題は、全体数から除外すべき行数を引き算することで答えを導きます。

全100通りの組み合わせから、「AがB以下(ABA \leqq B)」である行を特定し、その数を全体から引いてください。

  1. A=BA=B となる行数は、(0,0),(1,1),,(9,9)(0,0), (1,1), \dots, (9,9) の合計10通りです。
  2. A<BA<B となる行数は、全体の100通りから A=BA=B の10通りを引き、残ったものを半分に分けることで求められます。(10010)/2=45(100 - 10) / 2 = 45 通りです。
  3. これらを合わせると ABA \leqq B となる行は 10+45=5510 + 45 = 55 通りあります。
  4. 最後に全体から除外する行を引きます。10055=45100 - 55 = 45 通りが残ります。

数と関係性の把握

この問題では、2つの集合の全組み合わせ(直積)における特定の関係性を扱う「集合の包含関係」や「対称性」の概念を使っています。0から9までの各数字がA列とB列に網羅されているため、組み合わせの総数は 10×10=10010 \times 10 = 100 となります。

数学的には、すべての組み合わせは以下の3つの排他的なグループに分類できます。

  • グループ1: A<BA < B
  • グループ2: A=BA = B
  • グループ3: A>BA > B

今回求めたいのはグループ3(A>BA > B となる行)の数です。ここで、グループ1とグループ3は数字を入れ替えただけの対称な関係にあるため、必ず同じ数になります。

思考のステップ

試験本番で迷わないためには、以下の手順で構造を可視化しましょう。

  1. 全体像を把握する:10×1010 \times 10 のマトリックスを想像します。対角線上の要素(10個)が A=BA=B です。
  2. 対称性を利用する:対角線を除いた残りの90個のうち、半分は A<BA < B であり、残りの半分は A>BA > B です。
  3. 条件を整理する:問題文で「ABA \leqq BA<BA < B かつ A=BA = B)」を取り除くとあるため、残るのは A>BA > B の部分だけであると読み替えます。

実務における条件分岐の考え方

この問題は、プログラミングやデータベース処理における「フィルタリング」の論理を問うています。例えば、顧客データから特定の条件を満たすレコードを除外して抽出する際、論理式を正しく記述できるかが重要です。

システム開発の現場では、条件式を複雑に書きすぎると思わぬバグを生むことがあります。この問題のように「全体から不要なものを引く」という考え方は、否定条件を用いたフィルタリングにおいて非常に役立ちます。また、データの偏りや分布を確認する際にも、こうした基本的な数え上げの感覚は、データのクレンジングや異常値検出の際に不可欠なスキルとなります。

参考リンク

学習の記録にははてなブックマーク!

気づいたこと・覚えたことをコメントにメモしよう