BLOG

2025.02.26ブログ

共通テストの題材になっていた「チェックディジット」の仕組みを解説します!

 こんにちは!タイムレスエデュケーションの日高です。先月、2025年大学入学共通テストが実施されました。今年度から「情報Ⅰ」が必須科目となったことはご存知でしょうか。


 今年の情報Ⅰの試験では、大問が全部で4つあり、1つ目の大問では情報に関する知識を問う問題が出されました。また2つ目の大問では、ショッピングサイトのシステム設計を考える問題や、支払いとお釣りに関するシミュレーションの問題が出されていました。そして3つ目の大問でプログラミングに関する内容、4つ目の大問で情報を分析して読み取るデータサイエンスの内容がそれぞれ出題されました。


 本日の記事では、第1問の問3で出題された内容を最初に確認してから、この問題で題材となっているチェックディジットについて解説させて頂きます。それでは早速、共通テストで実際に出題された問題の内容を見ていきましょう。


共通テスト第1問での出題内容


問3


次の文章を読み, 空欄[キ]に当てはまる数字をマークせよ。また, 空欄[ク]に入れるのに最も適当なものを, 後の回答郡のうちから一つ選べ。


 チェックディジットは, 書籍のISBNコードなどで数字の入力ミスなどを検出するためなどに利用されている。ここでは, 5桁の数字(N5N4N3N2N1)の利用者IDに, チェックディジット1桁(C)を加えた6桁の識別番号(N5N4N3N2N1C)を考える。チェックディジットの生成方法として,  次の2種類を考える。


【生成方法A】


利用者IDの各桁の値を足し合わせ, 10で割った余りRを求め, 10からRを引いた値をチェックディジットとする。


【生成方法B】


利用者IDの各奇数桁(N5, N3, N1)の値をそれぞれ3倍にした値と, 各偶数桁(N4, N2)の値を足し合わせ, 10で割った余りRを求め, 10からRを引いた値をチェックディジットとする。


 なお, いずれの生成方法も, Rが0の場合は, チェックディジットを0とする。


 例えば, ある利用者IDが「22609」の場合にチェックディジットを計算すると, 生成方法Aでは「1」になり, 生成方法Bでは「[キ]」となる。


 これらのチェックディジットでは, 1桁の入力ミスは検出できても, 2桁の入力ミスは, 検出できないことがある。生成方法Bはこの点について多少検出できるように工夫されている。例えば, [ク]入力ミスをした場合は, 生成方法Aでは検出できることはないが, 生成方法Bでは検出できることがある。


[ク]の解答群


0 奇数桁の数字を二つ間違える


1 連続する二つの桁の数字をそれぞれ間違える


2 奇数桁のうちの二つの桁の数字の順序を逆にする


3 連続する二つの桁の数字の順序を逆にする


 


出典:独立行政法人 大学入試センター


チェックディジットとは


 チェックディジット(チェックデジット)に関して、高校情報Ⅰの教科書では以下のように書かれています。



 データの誤りを検出する方法として, パリティ検査の他に, チェックデジットがある。商品のバーコードや, マイナンバーなどに使われている。一定の規則に従って計算した結果の数字や記号を番号に加えることで誤りを検出している。



参考文献:


坂村 健、「高等学校 情報Ⅰ 」、数研出版株式会社、2022年1月


 私たちの身の回りでは、商品バーコードや銀行口座の番号、クレジットカード番号など様々なものに数列が使われています。このような数列を扱う場面においては、手入力のミスや機械の読み取りエラーを避けられません。そこで特定の規則に基づいた計算で算出されたチェックディジットの値を加えることで、誤入力やデータ伝送のミス、データ破損などを検出できるようになります。



 例えば、前述した利用者IDのケースで考えてみましょう。この例だと、連続する二つの桁の数字の順序を逆にした場合、生成方法Bを用いて誤りを検出できます。しかし、生成方法Aでは全ての桁の値をそのまま足し合わせてからその後の計算を行うので、誤りを検出できません。つまり、[ク]の答えは3となります。


 チェックディジットの計算方法にはいくつかあり、前述の問における生成方法Bのような手順で計算する手法は「モジュラス10」と呼ばれます。この方法は、クレジットカード番号などにも使用されています。そしてシステムの信頼性を向上させ、安全で正確なデータ管理を可能にするという役割を果たしています。


チェックディジットの計算方法


 それでは、共通テストの問題内容を踏まえて、モジュラス10の計算方法について見ていきましょう。問題では、5桁の利用者ID「22609」という番号の末尾にチェックディジットCを付ける例となっています。そして生成方法Bを用いた場合、計算の手順は以下のようになります。


①末尾側から1桁おきに、各桁を三倍する。


6 2 18 0 27←太字の数が 三倍にした値


③すべての桁を合計する。


6 + 2 + 18 + 0 + 27= 53


④その合計を10で割った余りを求める。


53÷10=5 余り 3


⑤「10-余り」の値をチェックディジットとする。


10-3=7


上記の計算より[キ]の答えは、7とわかります。このようにモジュラス10を用いて計算を行うことで、1桁の入力ミスや隣接する桁の入れ替えなどのエラーを検出できるようになっています。そしてシステムが間違ったデータを処理するのを防ぎ、トラブルを未然に防ぐ仕組みが作られています。


さいごに


 ここまで読んで頂いた方は分かる通り、チェックディジットは単なる追加の数字でなく、システムの安全性や利便性を高める重要な役割を持っています。そして本日の記事で説明したモジュラス10の他にも、モジュラス11などいくつか計算方法があります。気になる方は、是非ご自身で調べてみて下さい。


 今年の共通テストでは、チェックディジット以外にも、様々な題材で問題が出題されていました。次回以降の記事では、他の問題で取り上げられていた内容に関するトピックで、また解説させていただければと思います。本日も最後までお読み頂き、誠にありがとうございました!次回の記事も楽しみにお待ち下さい。




弊社では、子どもたちがタイムレスな陳腐化しないスキルを身につけられるように、創造する活動に重点を置いたプログラミングの授業を行っています。


少しでもご興味お持ち頂けた方は、ぜひ無料体験会にお越し下さい!


またX, Facebookのフォローはこちらからお願い致します!

INFORMATION無料体験会・ワークショップ・ご案内

     

春の無料体験会

無料体験会を実施します。ぜひ一度ご体験ください!

プログラミング&ロボット教室 授業運営パッケージ

弊社で実施している授業を取り入れたい方々向けに提供しています。