表のA列とB列に0から9までの数字のすべての組合せが入っており,全部で100行ある。表からA列の値がB列の値以下である行をすべて取り除く。残りは何行あるか。
| A | B |
|---|---|
| 0 | 0 |
| 0 | 1 |
| 0 | 2 |
| ⋮ | ⋮ |
| 9 | 8 |
| 9 | 9 |
この問題の解説と、これまでの解答の記録です。
表のA列とB列に0から9までの数字のすべての組合せが入っており,全部で100行ある。表からA列の値がB列の値以下である行をすべて取り除く。残りは何行あるか。
| A | B |
|---|---|
| 0 | 0 |
| 0 | 1 |
| 0 | 2 |
| ⋮ | ⋮ |
| 9 | 8 |
| 9 | 9 |
40 は、100行を単純に半分にした50から、さらに A=B の10行を引いてしまった誤りです。A=B の10行はもともと「A ≦ B」に含まれて取り除かれる側なので、先に100行から10行を除いた90行を半分にして 90÷2=45 とするのが正しく、10行を二重に引いてはいけません。
正解 A列・B列はそれぞれ0〜9の10通りなので、全組合せは 10×10=100行です。取り除くのは「A列の値がB列の値以下」すなわち A ≦ B の行で、残るのは A > B の行だけです。100行を三つに分けると、A=B は (0,0) から (9,9) までの10行。残りの90行は、(A,B) と (B,A) を入れ替えると必ず一方が A>B、もう一方が A<B に対応するので、A>B と A<B はちょうど同数の 90÷2=45行ずつになります。したがって残りは45行で イ が正解です。直接数えても、A=1 のとき B=0 の1通り、A=2 のとき B=0,1 の2通り、…、A=9 のとき9通りで、1+2+…+9=45 と一致します。
50 は、100行が A>B と A≦B にちょうど半分ずつ分かれると考えた誤りです。A=B の行が10行存在するため、A>B と A<B の合計は90行にしかならず、それぞれ45行になります。等号を含む行の存在を数え落とすと50になります。
55 は、取り除かれる側の行数(A ≦ B = 45+10=55行)を答えてしまった値です。また、条件を「A列の値がB列の値未満(A < B)」と読み違えて、残りを A ≧ B の55行と計算した場合もこの値になります。設問は「以下」=等号を含むので、A=B の10行も取り除かれ、残りに含まれません。