ISBNとバーコード(2) |
● バーコード ●
商品にはバーコードがついていて、レジでその商品情報を読み取る・・・。
知ってはいましたが、今まであまり気にもとめていませんでした。
もちろん、書籍にもバーコードがついています。
これは、拙著「大人の算数 子どもの数学」のバーコードです。
(しつこく例にあげたのは、ひそかに(?)売り上げ向上に協力していただきたいためです。
このホームページをご覧いただいている方だけでも、ぜひともよろしくお願いしますっ!)
『大人の算数 子どもの数学』 (すばる舎) | |
装丁:田中 正人 |
さて、バーコードは白のバーと黒のバーがたがいちがいに並んでいます。
それで・・・?
今まで、こんなふうに思っていました。
同じ数には、同じ白黒バーのパターンが対応しているのだろう、って。
それなら、話は簡単です。
0から9までのパターンを作ればいいだけですから。
ところが、ちがっていたんですね〜!
● JANコード ●
最初、この「JAN」というのを見たとき、こう思いました。
「Japan」の「JApaN」だろうって。
じつは、そうじゃなかったのです!
でも、だれだって(?)そう思ってしまいますよね〜!
これは「Japanese Article Numbering」の略だったのです。
まっ、そんなことはどうでもいいかも。
それより、バーコードには、いろいろな種類があるらしいのです。
その中で、書籍に使われているのが、これから説明するJANコードです。
もっとも、書籍だけではないようですが・・・。
さて、(書籍の)バーコードを見ると、黒のバーと白のバーにはいろいろな太さがあるのに気づきます。
とは言っても、よく見ると、どちらも4種類ですが・・・。
これを、こう表すことにします。
■ ■■ ■■■ ■■■■ ■ ■■ ■■■ ■■■■
1 2 3 4 1 2 3 4
<黒のバー> ・左端の最初のバー の順に太い。 |
<白のバー> ・左端から2番目のバー の順に太い。 |
それから、こんなことにも気づきます。
黒のバーの個数を数えてみると、どちらも30本です。
数字はどちらも13個(桁)ですが、じつは最初の1個は特別な使い方をするのです。
ですから、13個のうち、最初の1個をのぞいた12個分のバーしか並べないのです。
そうすると、
30÷12=2 あまり 6
となって、6本あまります。
じつは、この6本は両端と真ん中に2本ずつ置いて、サンドイッチにするのです。
そして、12個の数字を半々にして、6個ずつこの間に並べるのです。
|
さらに、
30÷12=2 あまり 6
で、商は2ですから、12個のどの数字にも黒のバーは2本わりあてられます。
ちなみに、白のバーも2本わりあてます。
そうすると、黒のバーが2本と白のバーが2本の合計4本のバーで、
1つの数を表すことになります。
そうはいっても、太いバーばかり並ぶと、バーコードはいろいろな幅になってしまいます。
そこで、1つの数を表す4本のバーの幅をそろえるのです。
4本のバーを合わせた幅が、一番細いバーの7つ分の幅になるようにするのです。
さて、そんな並べ方は何通りあるでしょうか。
● 順列 ●
さてさて、4種類の太さの白のバーと黒のバーをたがいちがいに並べて、
幅の合計が7になる並べ方は、何通りあるか数えてみましょう。
まず、(白黒白黒)と並べる方法と(黒白黒白)と並べる方法は、
白と黒を入れかえるだけですから、同じだけあります。
そこで、とりあえず(白黒白黒)と並べる方法を考えます。
まず(3211)と書いたら、(白黒白黒)の幅が(3211)の次のようなものだとします。
(3211) <-----> ■■■■■■■
それでは、全部書き並べてみましょう。
(4111)
(3211) (3121) (3112)
(2311) (2221) (2212) (2131) (2122) (2113)
(1411) (1321) (1312) (1231) (1222) (1213)
(1141) (1132) (1123) (1114)
なんと、全部で20通りもあります。
必要なのは、
0,1,2,3,4,5,6,7,8,9
の10個の数字を表すものですから、20通りもあったら多すぎます。
はっきりいって、2倍もあります。
おっと、(白黒白黒)を(黒白黒白)に入れかえたものも入れると、40通りもあるのですから、
なんと4倍もあることになります。
私などの素人考えだと、その中の一部を使えばいいと思ってしまうのですが、
なぜか、そうはしないのです。
なんと、1つの数字に4通りならぬ3通りも対応させるのです。
一人の人間に名前が3つあるようなものです。
1つの数字に3通りも表し方があると、いつどれを使うかを決めなくてはなりません。
まるで、ペンネームのように使いわけるのです。
さて、その3通りの表し方は、こうなっています。
黒の幅の合計が、奇数(Odd)か偶数(Even)かで、分けるのです。
おまけになぜか、黒から始まる方は偶数(Even)だけで、奇数(Odd)は使わないのです。
左(Odd) | 左(Even) | 右(Even) | |
0 | (3211) ■■■■■■■ | (1123) ■■■■■■■ | (3211) ■■■■■■■ |
1 | (2221) ■■■■■■■ | (1222) ■■■■■■■ | (2221) ■■■■■■■ |
2 | (2122) ■■■■■■■ | (2212) ■■■■■■■ | (2122) ■■■■■■■ |
3 | (1411) ■■■■■■■ | (1141) ■■■■■■■ | (1411) ■■■■■■■ |
4 | (1132) ■■■■■■■ | (2311) ■■■■■■■ | (1132) ■■■■■■■ |
5 | (1231) ■■■■■■■ | (1321) ■■■■■■■ | (1231) ■■■■■■■ |
6 | (1114) ■■■■■■■ | (4111) ■■■■■■■ | (1114) ■■■■■■■ |
7 | (1312) ■■■■■■■ | (2131) ■■■■■■■ | (1312) ■■■■■■■ |
8 | (1213) ■■■■■■■ | (3121) ■■■■■■■ | (1213) ■■■■■■■ |
9 | (3112) ■■■■■■■ | (2113) ■■■■■■■ | (3112) ■■■■■■■ |
● バーコードの右半分 ●
さあて、いよいよバーコード作りです。
なにしろ、1つの数字に表し方が3通りもあるのですから、
まずは、いつどれを使うかを決めなくてはなりません。
|
さきほど、最初の1個は特別な使い方をするといいましたが、
じつはそれは左半分にしか影響しないのです。
ですから、13個のうちの12個しか並べないのですが、
その12個の数字を半々にして、6個ずつこの間に並べるといっても、
右半分はかんたんなのです。
そうです! さっきの表の右のものを使うだけです。
ためしに、やってみましょう!
まず、「9784883993314」の「9」は特別な使い方をするということで、のぞきます。
のこりの「784883993314」を半々にして、
「784883」 と 「993314」
にします。
そして、左半分は後回しにして、右半分だけを表を見ながら置きかえるとこうなります。
9 <-----> (3112) <-----> ■■■■■■■ 9 <-----> (3112) <-----> ■■■■■■■ 3 <-----> (1411) <-----> ■■■■■■■ 3 <-----> (1411) <-----> ■■■■■■■ 1 <-----> (2221) <-----> ■■■■■■■ 4 <-----> (1132) <-----> ■■■■■■■
|
右(Even) |
|
0 | (3211) ■■■■■■■ | |
1 | (2221) ■■■■■■■ | |
2 | (2122) ■■■■■■■ | |
3 | (1411) ■■■■■■■ | |
4 | (1132) ■■■■■■■ | |
5 | (1231) ■■■■■■■ | |
6 | (1114) ■■■■■■■ | |
7 | (1312) ■■■■■■■ | |
8 | (1213) ■■■■■■■ | |
9 | (3112) ■■■■■■■ |
すると、右半分はこうなります。
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
つまりは、こうです。
----------> |
同じようにして、こちらはこうなります。
----------> |
● バーコードの左半分 ●
さて、いよいよ左半分です。
左半分には、表の左のものを使うのですが、今度は2通りあります。
左(Odd) | 左(Even) | |
0 | (3211) ■■■■■■■ | (1123) ■■■■■■■ |
1 | (2221) ■■■■■■■ | (1222) ■■■■■■■ |
2 | (2122) ■■■■■■■ | (2212) ■■■■■■■ |
3 | (1411) ■■■■■■■ | (1141) ■■■■■■■ |
4 | (1132) ■■■■■■■ | (2311) ■■■■■■■ |
5 | (1231) ■■■■■■■ | (1321) ■■■■■■■ |
6 | (1114) ■■■■■■■ | (4111) ■■■■■■■ |
7 | (1312) ■■■■■■■ | (2131) ■■■■■■■ |
8 | (1213) ■■■■■■■ | (3121) ■■■■■■■ |
9 | (3112) ■■■■■■■ | (2113) ■■■■■■■ |
さて、いつどちらを使うのでしょう。
それを決めるのが、最初の数字なのです。
「9784883993314」だったら、最初の数字は「9」です。
「1920030014008」だったら、最初の数字は「1」です。
この数字によって、「左(Odd)」を使うか、「左(Even)」を使うかを決めるのです。
しかも、6個の数字の「784883」や「920030」で、
「左(Odd)」を使うか「左(Even)」を使うかを、半々にしたいとします。
つまり、OOOEEEを並べかえたものにするのです。
その並べかえたものは、
6!
6・5・4・3・2・1
----------- = ------------------- = 20 (通り)
3!3! 3・2・1×3・2・1
となって、20通りあります。
ということは、0,1,2,3,4,5,6,7,8,9の10個分より多すぎます。
そう!またしても2倍もあります。
そこで、「O」から始まるものだけにすると、半分になってちょうどよくなります。
最初 |
Odd と Even |
0 | OOOOOO |
1 | OOEOEE |
2 | OOEEOE |
3 | OOEEEO |
4 | OEOOEE |
5 | OEEOOE |
6 | OEEEOO |
7 | OEOEOE |
8 | OEOEEO |
9 | OEEOEO |
これで、準備が整いました。
それでは、やってみましょう。
「9784883993314」だったら、最初の数字は「9」ですから「OEEOEO」を使います。
つまり、
7 8 4 8 8 3
O E E O E O
をそれぞれ使います。
左(Odd) | 左(Even) | |
0 | (3211) ■■■■■■■ | (1123) ■■■■■■■ |
1 | (2221) ■■■■■■■ | (1222) ■■■■■■■ |
2 | (2122) ■■■■■■■ | (2212) ■■■■■■■ |
3 | (1411) ■■■■■■■ | (1141) ■■■■■■■ |
4 | (1132) ■■■■■■■ | (2311) ■■■■■■■ |
5 | (1231) ■■■■■■■ | (1321) ■■■■■■■ |
6 | (1114) ■■■■■■■ | (4111) ■■■■■■■ |
7 | (1312) ■■■■■■■ | (2131) ■■■■■■■ |
8 | (1213) ■■■■■■■ | (3121) ■■■■■■■ |
9 | (3112) ■■■■■■■ | (2113) ■■■■■■■ |
そうすると、こうなります。
7(O) <-----> (1312) <-----> ■■■■■■■
8(E) <-----> (3121) <-----> ■■■■■■■
4(E) <-----> (2311) <-----> ■■■■■■■
8(O) <-----> (1213) <-----> ■■■■■■■
8(E) <-----> (3121) <-----> ■■■■■■■
3(O) <-----> (1411) <-----> ■■■■■■■
これで、左半分はこうなります。
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
つまりは、こうです。
----------> |
同じようにして、こちらはこうなるはずです。(やってみてください)
----------> |
それにしても・・・?
これじゃ、まるで暗号のようですね〜!
掲載内容の無断転載、転用、編集を禁じます。(c)
小林吹代
All Rights Reserved, (c)kobayashi fukiyo , 2001