N
働き方・学び方
おとなの数学

2012/8/28

おとなの数学

もし、10ケタのうち、どこか1か所を読み誤ったとしたらどうなるか。a~jのうち、1か所をkという数値と読み誤ったとしよう。そのときの(1)の計算結果は11の倍数にならない。それは、もともとの式の(1)から誤った数値kが入った式を引くと分かる。

例えば、kが左から3番目の数値だった場合を考えよう。そのとき、もともとの(1)から

a×1+b×2+k×3+…i×9+j×10  …(2)

を引くと、

c×3-k×3=(c-k)×3  …(3)

となる。c-kは0でない-10以上10以下の整数になるので「11」の倍数には決してならない。したがって、それに3をかけた(3)も11の倍数にはならない。

10桁目が「X」で表記されているISBN記号

ここで、(2)の式に戻って考えよう。(2)がもし11の倍数ならば、もともと11の倍数になっている(1)から(2)を引いた数(3)も11の倍数になるはずである。そうならないのは、(2)が11の倍数でないことを意味する。これはkが左から何番目になっていても同様だ。(3)の式の右の「×3」の部分が「×1」~「×10」のどれかに置き換わるだけなので、11の倍数にはならない。

したがって、旧ISBN記号は、1文字の誤りを検出することができるのである。

なお、素数である11で割り切れるか否かをチェックすることに本質的な意義がある。もし素数でない10で割り切れるか否かをチェックすると、たとえば左から2番目のbが0であっても5であっても、(1)の計算式の2番目の部分が

0×2=0、 5×2=10

となって、どちらも10で割った余りが同じになってしまう。したがって、bが正しくは0であるところを5と読み誤っても、(1)の計算結果を10で割った余りは同じになってしまい、誤りの検出はできないのである。

書籍などには13桁のバーコードがついている

バーコードの数字の意味は

商品についている13ケタのバーコードも同じように誤りを検出する符号だ。「4988009440392」という例で説明してみよう。最初の2ケタの「49」は国名(日本)を表し、次の5ケタの「88009」はメーカーを表し、次の5ケタの「44039」は商品自体を表している。最後の「2」は、情報伝達の段階で誤りが1つ生じたとき、それを検出するために必要な記号である。

注目記事
次のページ
誤り訂正符号の仕組み