平成22年度 秋期 ITパスポート試験 問88 解説 チェックディジットの計算
9 けたの数字に対して,次のルールでチェックディジットを最後尾に付けることに した。チェックディジットを付加した 10 けたの数字として,正しいものはどれか。 ルール1:各けたの数字を合計する。 ルール2:ルール1で得られた数が 2 けたになった場合には,得られた数の各けた の数字を合計する。この操作を,得られた数が 1 けたになるまで繰り返 す。 ルール3:最終的に得られた 1 けたの数をチェックディジットとする。
- ア 1234567890
- イ 4444444444
- ウ 5544332211
- エ 6655333331 ✓ 正答
解説
この問題は、提示されたルールに従って各桁の数字を合計し、最終的に1桁になるまで足し合わせることで解決できます。選択肢の先頭9桁を合計し、ルールを適用した結果が末尾の数字と一致するものを探します。
ルールを適用した計算プロセス
選択肢エの「6655333331」を例に検証します。先頭の9桁は「665533333」です。
- 各桁の数字を合計します。 6 + 6 + 5 + 5 + 3 + 3 + 3 + 3 + 3 = 37
- 合計が2桁なので、各桁を合計します。 3 + 7 = 10
- まだ2桁なので、さらに各桁を合計します。 1 + 0 = 1
最終的に得られた数字は「1」となりました。問題文のルールでは、この1桁の数をチェックディジットとして末尾に付加するとあるため、9桁の数字「665533333」に「1」をつけた「6655333331」が正しいことになります。他の選択肢を同様に計算すると、末尾の数字と一致しないことが確認できます。
根底にある数学的な性質
この計算手法は、数学の「数字根(デジタルルート)」や、9を法とする合同式における計算と同じ結果を導きます。
具体的には、ある数を9で割ったときの余りを求める演算に近い挙動を示します。余りが0になる場合は「9」という結果になります。この性質を利用することで、すべての桁を地道に足さなくても、9の倍数になる組み合わせ(例:6と3で9、5と4で9など)を除外しながら計算すると、素早く暗算することも可能です。
データ誤り検知の役割
チェックディジットは、クレジットカード番号、バーコード(JANコード)、マイナンバーなどの身近なデータに付加されています。これは、入力ミスや読み取りエラーを防ぐための仕組みです。
人がキーボードからデータを入力したり、バーコードスキャナが読み取ったりする際、どうしても誤入力や読み取りミスが発生します。システムはデータの末尾にあるチェックディジットを計算し、あらかじめ付加されている値と照合します。もし計算結果が一致しなければ、どこかに誤りがあることを瞬時に検知できるため、誤った情報のまま処理が進んでしまう事態を未然に防ぐことができます。
実務と試験での活用
試験においては、この問題のように計算ルールが具体的に指定されている場合、その手順を忠実に再現することが最も確実です。一方で、この問題の背景には「入力データの整合性を担保する」という目的があることを理解しておくと、ITパスポート試験で問われるシステム管理やセキュリティの分野とも知識がつながります。
実務においては、桁数の多い識別番号を扱うシステムを設計する際、このようなチェックディジットのロジックを実装することで、データ整合性の高いシステムを構築することが求められます。