こんにちは!
本日は茨城県公立中高一貫校の2⃣で出題された、「チェックデジット」に関する内容について解説しようと思います。
問題訂正が試験中に訂正されるという記事を読んだので、どのような内容なのか気になった方もいるかと思いますので、ルールの理解となぜ訂正が必要だったのかを気になる人はこの記事を読んでいただければ、理由についてわかるかと思います。
チェックデジットとは?
「チェックデジット」とはあるルールに従って、ある特定の長さの数字列の文字を計算して求めた「1桁の検証用の数字」のことを指します。
例として「901085620106」という12桁の数字があったとしましょう。
ここに次のルールを適用して、「検証用の数字」を出してみようと思います。
手順1. 右から順に1番目(6)、3番目(1)、5番目(2)、7番目(5)、9番目(0)、11番目(0)の数字を足した後、3を掛け算します。
手順2. 右から順に2番目(0)、4番目(0)、6番目(6)、8番目(8)、10番目(1)、12番目(9)の数字を足し合わせます。
手順3. 手順1で求めた数字(45)と手順2で求めた数字(24)を足し合わせます。
手順4. 手順3で求めた数字(66)を10で割ったあまりを使って、10から引き算します。
最後に算出された1桁の数字である「4」が「チェックデジット」と言います。
ちなみにこれは日常生活で利用されている「バーコード用のチェックデジット」を求めるアルゴリズム「モジュラス 10 ウェイト 3 1」という計算方法と言います。(この例は手元に持っていた、おーいお茶 濃い味 1Lのバーコードの数字をそのまま使っております。)

今回適性検査Ⅰの2⃣で出題された問題は、まさしくこの計算手順を利用して作られている問題でした。では一体何が問題だったのでしょうか?実はこの手順では1か所だけ、問題が起きる可能性があるところがあります。(正解は今から解説するので、考えてみたい方はここで止まってください)
今回の訂正について
さて、ここまででチェックデジットの計算手順自体は理解できたと思います。
実はこの計算方法には、たった1か所だけ注意しなければならないポイントがあります。それが次のケースです。
・問題が起きるケース
手順4を思い出してください。
手順4. 手順3で求めた数字を10で割った余りを使って、10から引き算する。
つまり数式で書くと
チェックデジット = 10 − (手順3の合計 mod 10)
となります。
ここで重要なのは、
「手順3の合計が10の倍数だった場合」 です。
例
- 手順3の合計が 70 の場合
- 70 mod 10 = 0
- 10 − 0 = 10
しかし、チェックデジットは1桁の数字でなければなりません。
「10」という数字は、チェックデジットとしては使えないのです。
そのため、実際のバーコード規格(モジュラス10・ウェイト3・1)では、
次の 補足ルール が必ず入ります。
もし 10 − (合計 mod 10) = 10 になった場合は、チェックデジットを 0 とする
つまり正式には、
(10 − (合計 mod 10)) mod 10
と計算するのが正しい形です。
まとめ
今回の茨城県公立中高一貫校の適性検査Ⅰ・2⃣では、「10になった場合は0とする」という補足説明が問題文に書かれていなかったため問題訂正が入ったわけです。
ただ、今回の問題文では「チェックデジットは1」と明記されており、普通に考えれば「手順3で求めた合計が10で割り切れることはない」といったところから、今回は問題の解答には一切影響がありませんでした。(塾生は問題なく正解していたので、私としては一安心ですね)


コメント