ITパスポート 2010年 春期 問67
問題文
表のA列とB列に0から9までの数字のすべての組合せが入っており、全部で100行ある。表からA列の値がB列の値以下である行をすべて取り除く。残りは何行あるか。

選択肢
ア:40
イ:45(正解)
ウ:50
エ:55
🔒 解説は解答すると表示されます
表の組合せ(0〜9)の行を削る問題【ITパスポート 解説】
正解の理由
表にはA列とB列のすべての組合せ、すなわち から までの数字を使った順序付けられたペアが合計で 行あります。
「A の値が B の値以下である行(A ≤ B)」をすべて取り除くと、残るのは「A の値が B の値より大きい行(A > B)」だけです。
各 A に対して B が取りうる値で A > B となる個数を足し合わせると、 のときは 、 のときは 、…、 のときは となり、合計は です。
したがって残りは45行であり、選択肢のうち イ が正しい答えです。
「A の値が B の値以下である行(A ≤ B)」をすべて取り除くと、残るのは「A の値が B の値より大きい行(A > B)」だけです。
各 A に対して B が取りうる値で A > B となる個数を足し合わせると、 のときは 、 のときは 、…、 のときは となり、合計は です。
したがって残りは45行であり、選択肢のうち イ が正しい答えです。
解法ステップ
- 問題が扱う集合サイズを確認:A,Bともに 〜 の10個の値を取る → 全組合せは 行。
- 残したい条件を明確にする:「A > B」の行を残す(A ≤ B を取り除く)。
- A の各値ごとに B の取り得る値の数を数える:
- A=0 のとき B は 0 未満の値がない → 0行
- A=1 のとき B は {0} → 1行
- …
- A=9 のとき B は {0,1,...,8} → 9行
- これらを足し合わせる:。
別の見方として、一般に n 個の値(ここでは n=10)を使う場合、A>B の組は で表せ、 となる。
選択肢別の誤答解説
- ア: 40
何らかの数え落とし(例えば A=9 のとき 9 を 8 と誤って数えた等)による不足。正しくは 0〜9 の合計で45となるため 40 は合いません。 - イ: 45
各 A に対する B の取り得る数 を足した合計 45 が正解です。 - ウ: 50
「全体の半分」として直感的に 100÷2=50 としてしまった誤り。A>B と A<B は対称で各45行、等しい場合(A=B)が10行あるため、半分にはなりません。 - エ: 55
逆に「A ≤ B を取り除く」と読み違えて A ≥ B を残す(または A<B を残す)など、条件を反対に解釈した結果の数字に見えます。実際、A ≤ B の行は残る数ではなく取り除かれる数で、A ≤ B の合計は 55(=100−45)ですが、問題は取り除いた後に「残る」行を問うているため 55 は誤りです。
よくある誤解
- A と B の関係を「A ≥ B を取り除く」と誤読する。問題文の向き(<= vs >=)を確認することが重要です。
- 表を「順不同の組(組合せ)」と勘違いし、(10 choose 2) = 45 や半分の考えを乱用してしまう。ここでは順序(A と B の列名)がある「順序付けられた組」です。ただし結果的に A>B の数は組合せの数と一致します(理由は下に説明)。
- 直感で「半分」や「数直線の対称性」を当てはめてしまう。A=B が10個ある点を見落とすと 50 と誤答しやすいです。
補足コラム
視覚的に考えるとわかりやすいです。10行×10列のマス目(Aを縦軸、Bを横軸)を想像してください。対角線(左上から右下)上のマスは A=B の10個です。対角線より下側(A>B)の三角形部分のマスが残る部分で、そのマスの個数は三角数(triangular number)と呼ばれる に相当します。n=10 のときは 45 です。
小さい例で試すと確かめやすいです。A,B が 0〜2 の場合、全9行で A>B の組は (1,0),(2,0),(2,1) の3つ。で合います。
小さい例で試すと確かめやすいです。A,B が 0〜2 の場合、全9行で A>B の組は (1,0),(2,0),(2,1) の3つ。で合います。
簡単な計算確認用の Python(例)
count = sum(1 for a in range(10) for b in range(10) if a > b)
print(count) # 45
FAQ
Q. なぜ公式が n(n-1)/2 になるのですか?
A. あるサイズ n の集合から「順序を考えずに2つ選ぶ組合せ」は です。ここでは A と B の値が異なるペアを向き(どちらが大きいか)で分けると、A>B の向きだけが残るのでちょうどその組合せの半分、あるいは直接 と数えることと同値です。
A. あるサイズ n の集合から「順序を考えずに2つ選ぶ組合せ」は です。ここでは A と B の値が異なるペアを向き(どちらが大きいか)で分けると、A>B の向きだけが残るのでちょうどその組合せの半分、あるいは直接 と数えることと同値です。
Q. 「A < B」と「A > B」はいつも同じ数になりますか?
A. はい。対称性により同じ数になります。ただし A=B の場合が残るので、全体を単純に半分にするわけではありません。今回の例では A=B が 10 個あります。
A. はい。対称性により同じ数になります。ただし A=B の場合が残るので、全体を単純に半分にするわけではありません。今回の例では A=B が 10 個あります。
Q. 値の範囲が 0〜9 でなく 1〜10 の場合は?
A. 取り扱いは同じです。値の個数が n = 10 であれば答えはやはり です。値の最小が何かは結果に影響しません(個数 n が大事)。
A. 取り扱いは同じです。値の個数が n = 10 であれば答えはやはり です。値の最小が何かは結果に影響しません(個数 n が大事)。
関連キーワード: 場合の数、組合せ、三角数、二次元表、等差数列、可視化による理解

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

