現在コミックデータベースに登録されている
ISBN 番号から出版社を表す数字の部分を抜きだし,
発行所の名前と対応させて並べてみました.
登録データに誤りがあるとこの一覧表も不正確なデータとなってしまいますが,
少しは役に立つかなと思って公開させていただきます.
皆さんの参考になればうれしいですね.
それはともかく,出版社と発行所の関係がよく分からないなあ...
a-bbb-ccccc-dのような形式で並んだ 10 桁の数字の並びで,最初の a の部分が国番号を表し, bbb の部分が出版社に割り振られた番号, ccccc の部分が各書籍に割り振られた番号を表しています. そして最後の d の部分はこの部分以外の 9 桁の数字から計算されたチェックディジットとなっています.
j = ( 11 - ( a*10 + b*9 + c*8 + d*7 + e*6 + f*5 + g*4 + h*3 + i*2 ) % 11 ) % 11なお, % は余りを求める演算子であり, a から i までの重み付きの和を 11 で割った余りを求め, 11 からその余りを引いたものが j の値となります. ただしこれでは余りが 0 になったときに 11 から余りを引いた値が 11 となってしまうため, これを 0 にするためにもう一度 11 で割った余りを求めています. このような方法で計算するため j は 0 から 10 の値を取ることになります. しかし当然 10 は一桁の数ではないので j が 10 になったときは代わりの文字として X が使われます. 数字と言いながらまれに X があるのはそう意味なんだそうです.
j = ( - ( a*10 + b*9 + c*8 + d*7 + e*6 + f*5 + g*4 + h*3 + i*2 ) ) % 11また,マイナスがうまく考慮されない( -1 % 11 = -1 と計算する) ような場合ではあらかじめ充分大きな 11 の倍数を求めておき, その数から引き算した後 11 で割った余りを求めればいいので次の式で求めるのもいいと思います.
j = ( 1100 - ( a*10 + b*9 + c*8 + d*7 + e*6 + f*5 + g*4 + h*3 + i*2 ) ) % 11皆様の好きな式をお使いください.
とか書いていたのだけど, なんか2007年からは新しい規格になって計算方法が変わったようです. 詳しくは 日本図書コード管理センター の 規格改定のお知らせ をご参照ください (追記:と書いていたんだけど,お知らせページ,消されちゃったみたいなんで Internet Archive の該当ページ).