隠しページトップ

符号理論


 PDF |符号と暗号の理論|

 ISBN番号というのは、本の裏に書いてある10桁(現在では13桁)の数字である。ただし、最後の桁はXなんかの英字が使われている場合もある。これはもちろん本を識別するための番号、IDである。ただし、その中で識別番号として意味があるのは初めの9桁だけである(ハイフンは無視)。では、最後の桁は何のためにあるのか?
 
 これは「間違い防止」のためである。例えば、9桁だけにしておくと、ひとつどこかを間違えただけで全く違う本を認識してしまう。本屋などが大量に本を発注する際に、もしそんなことが起これば一大事である。よって10桁目に間違い検出の数字を置くことは非常に意味がある。問題はどのようにそれを決めるかである。目標は10桁のうちのどこか1つが間違っていたら、存在しなくなるように10桁目を定めなければならない。例えばものすごく安易に、9桁目の数を繰り返して10桁目なんかを決めても、無意味であることは少し考えれば分かる。

 この10桁目の決め方は以下の通りである。まず9桁の数が与えられた場合、それを1桁目から順に、A、B、C、D、E、F、G、H、Iとでもしておく。このとき、次の計算をする。

       (1×A+2×B+3×C+……+9×I)÷11

そして、その余りを10桁目にする。このとき、ひとつ困ったことは割り切れたときは0とすればいいが、11で割るのだから余りが10という場合もある。これだと10桁目を何とすればいいか困るので、余り10の場合は10桁目を文字Xとする。
 なぜこんな計算をしなければならないのか?もっと安易な方法は無いのか?など色々疑問はあるでしょうが、詳しくはPDFを参照あれ。とりあえず今自分の身の回りにある本を手にとって確かめて見るのが一番ではないかと思います。私の一番手近にあったのはこれでした。

(例) LATEXのテキスト「美文書作成入門」 奥村晴彦
    ISBN番号 4-7741-1940-7

(4+14+21+16+5+6+63+32+0)÷11=161÷11=14…7というわけで7が10桁目でよいですね。では例えば、このISBN番号の1つを間違えたとしましょう。

   誤ISBN番号 4-7745-1940-7

5桁め間違えたとしましょう。このとき
(4+14+21+16+25+6+63+32+0)÷11=181÷11=16…5となり、10桁目で食い違いが起こります。これにより間違いが検出できます。これはどこの桁をどんな数に取り違えても、最後の10桁目があわなくなります。ただし2つの桁で間違われると苦しいです。
 
 言い換えれば、正しいISBN番号かを判断する方法は

  (1×A+2×B+3×C+……+9×I+10×10桁目の数)÷11

が割り切れればよいわけです。