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

選択肢
ア:40
イ:45(正解)
ウ:50
エ:55
🔒 解説は解答すると表示されます
順序付き数の組合せと不等式【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パスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

