本文へスキップ

平成22年度 秋期 ITパスポート試験 問88

この問題の解説と、これまでの解答の記録です。

問88
頻出度★★★

9 けたの数字に対して, 次のルールでチェックディジットを最後尾に付けることにした。チェックディジットを付加した 10 けたの数字として, 正しいものはどれか。 ルール 1 : 各けたの数字を合計する。 ルール 2 : ルール 1 で得られた数が 2 けたになった場合には, 得られた数の各けたの数字を合計する。この操作を, 得られた数が 1 けたになるまで繰り返す。 ルール 3 : 最終的に得られた 1 けたの数をチェックディジットとする。

出典 平成22年度 秋期 ITパスポート試験 問88
解説

問 88

  • 不正解ア

    上位 9 けたは 123456789 で、合計は 1+2+3+4+5+6+7+8+9=45。2 けたなので 4+5=9 となり、チェックディジットは 9 でなければならない。しかし最後尾は 0 なので、正しく付加された 10 けたの数字ではない。正しくするなら 1234567899 となる。

  • 不正解イ

    上位 9 けたは 444444444 で、合計は 4×9=36。2 けたなので 3+6=9 となり、チェックディジットは 9 が正しい。しかし最後尾は 4 なので不一致。全部同じ数字が並んでいて一見もっともらしいが、ルールどおりに計算すると成立しない。

  • 不正解ウ

    上位 9 けたは 554433221 で、合計は 5+5+4+4+3+3+2+2+1=29。2 けたなので 2+9=11、まだ 2 けたなので 1+1=2 となり、チェックディジットは 2 が正しい。しかし最後尾は 1 なので不一致。ルール 2 の繰り返しを 1 回で止めて 11 のまま扱ったり、途中の計算を誤ったりすると選びやすい誤答である。

  • エ

    正解 正解は エ。ルールは「上位 9 けたの各けたを合計し、2 けたなら再び桁を合計する操作を 1 けたになるまで繰り返し、その 1 けたをチェックディジットとして最後尾に付ける」というもの。したがって、10 けたの数字のうち上位 9 けたから計算した値が最後尾の 1 けたと一致していれば正しい。エ の上位 9 けたは 665533333 で、6+6+5+5+3+3+3+3+3=37 (ルール 1)。37 は 2 けたなので 3+7=10、10 もまだ 2 けたなので 1+0=1 (ルール 2 を 2 回繰り返す)。最終的に得られた 1 けたは 1 (ルール 3) であり、エ の最後尾の数字 1 とぴたりと一致する。よって エ が正しい 10 けたの数字である。なお、ここで求めている値は各けたの合計を 9 で割った余り (余り 0 のときは 9) と同じ値になり、この考え方を使えば合計を最後まで足し直さずに素早く検算できる。

ここがポイント
  • チェックディジット (検査数字) は、コードの入力ミスや読取りミスを検出するために、決められた計算式で求めた数字をコードの末尾に付加したもの。この問題のように「上位けたから計算した値」と「実際の最後尾の数字」が一致するかを照合することで誤りを検出する。
  • ルール 2 は「1 けたになるまで繰り返す」点が要。29 → 11 で止めず 11 → 2 まで、37 → 10 で止めず 10 → 1 まで計算する。結果は各けたの合計を 9 で割った余り (余り 0 なら 9) に等しいので、検算に利用できる。
用語

解答の記録