バーコードについて  標準タイプバーコード 短縮タイプバーコード 戻る

 今、お店で商品を購入すると、必ず裏面の方に白黒の縞模様のバーコードがついている。
今日の流通社会において、バーコードの果たす役割は大きい。商品代金決済の迅速化(省
力化・打ちミスの減少)はもちろんのこと、商品の在庫状況を的確に判断することも可能に
し、経営効率の向上につながっている。

 バーコードを印刷するには、ある程度の面積を要し、あまり小さい商品にはバーコードは
のらない。あの懐かしい10円チョコは、かなりの人気商品であったが、バーコードがのらず、
流通経路から外れたため、売上げが激減したという。

 バーコードは、キーボードに代わってコンピュータに数字などを入力する手段である。バー
コードをなぞる(スキャンする)だけで、簡単に数字などが入力できるが、そこには、さまざま
な数学的工夫がなされている。

 現在一般に使われているバーコードは、JANシンボルといわれ、そのルーツはアメリカに
ある。大手の大型小売店チェーンのクロガーが、1967年に初めて商品にバーコードをつ
けて、コンピュータに入力する方法を実用化した。その後アメリカの米国フードチェーン協会
などが中心となって、1973年一般商品コード「UPC」(Universal Product Code)を制
定した。イギリス・フランス・ドイツなどのヨーロッパ各国も「UPC」に倣って、1977年共通の
商品コード「EAN」を制定し、日本も翌1978年、これに参加した。

 バーコードを光学的に読み取る仕組みが「POS」 (Point Of Sale)システムで実現さ
れ、普及が進んでいる。

 平成24年12月9日、悲しい知らせが世界を駆けめぐった。1949年に、バーナード・シル
バーとともにバーコードを発明したアメリカの科学者ノーマン・ジョセフ・ウッドランド氏が逝去
された。91歳。氏が1940年代に商品データを管理する方法としてバーコードを考案した。

 砂を指でなぞった際に線の幅に情報を持たせるという着想を得たらしい。1952年にアメ
リカで特許が認められたが、バーコードを読み取るスキャナーの技術があまり発達していな
かったため普及しなかった。バーコードは、1970年代に入って実用化が進んだ。

(注) バーコードを最初に思いついたのは、ドイツの数学者ライプニッツ(1646〜1716)であっ
   たとも言われる。

 このページでは、バーコードの仕組みについて、まとめてみたい。

 バーコードには、標準タイプの13桁と短縮タイプの8桁の2種類がある。

標準タイプ

桁 1   2   3  4  5  6  7  8  9  10  11  12  13 
   国コード   標準メーカーコード        商品コード     チェックデジット
  (日本は49または45)

短縮タイプ

桁 1   2   3   4   5   6             
   国コード   短縮メーカーコード   商品コード チェックデジット

 これらの数字の中には、価格が含まれていない。価格は別にセットすることになる。逆に、
このことから、特定の日だけ、商品の値札を貼りかえることなく、価格を変えて販売すること
が容易になった。

 また、印刷による不備、ゴミ、水などによるバーコードの劣化が原因となる読み取りミスを
検出するため、最後の桁に、チェックデジットが設定されている。

 チェックデジットの数字は次のような手順で求められる。

 標準タイプの場合

   偶数桁の値の和をとり、3倍する・・・・・その値をXとする。
   最後の桁を除いた奇数桁の和をとる・・・・・その値をYとする。
   X+Yの値を求め、この一の位の数を10から引く・・・・・この値がチェックデジットの値
                                    である。
 短縮タイプの場合

   上記の手順で、偶・奇を逆にして求める。

(例) 今、私の手元にある商品について、チェックデジットを計算してみよう。
     9  9  9  0  0  3 7
     X=(9+9+9+0+0+3)×3=90  Y=4+7+0+3+2+7=23
     よって、X+Y=90+23=113 より  チェックデジットは 10−3=7
    
     9  4  1  4 
     X=(4+8+7+5)×3=72  Y=9+4+1=14
     よって、X+Y=72+14=86 より  チェックデジットは 10−6=4

 バーコードの特徴の1つは、スキャナーを使い瞬時に読み込みができることである。バー
コード内にそれを支援する工夫がなされている。

0〜9までの数字のコード化について

    1番目の数字を除いて、全ての数字は、次のルールに従う。
     @ 7モデュールで1つの数字を表す
     A 黒バーの帯と白バーの帯は各々2箇所ずつ      


   例えば、左の配列で、
  数字の「7」が表される。




     B 左側(2番目から6桁)は白黒白黒
        右側(8番目から6桁)は黒白黒白  で表す
     C 右側と左側を区別するために、ガードバーが入る
(注)アメリカを中心としたUPCは、国コードが1桁である。このため、互換性に若干障害が
あり、1番目の数字は他の文字とコード化を異なったものにする必要がある。

 白黒白黒の場合で、@Aの条件を満たすものが何通りあるかは、高校1年生で学習する
順列・組合せの理論を用いて間単に求めることができる。

 白 黒 白 黒 の幅をそれぞれ X、Y、Z、W とすると、

   X+Y+Z+W=7   X、Y、Z、Wは1以上4以下の自然数

が成り立つ。

 この式を満たす組(X、Y、Z、W)の個数を求めればよい。

  (X−1)+(Y−1)+(Z−1)+(W−1)=3

と変形すると、求める場合の数は、異なる4個のものから重複を許して3個とる組合せの数
に等しい。よって、

        (4+3−1)!÷(4−1)!3!=20

で、全部で20通りあることが分かる。

白黒白黒の幅を逆に並べたものも同じ数を表すことにすると、0から9までの10個の数字
を全て表すことができるわけである。

 7モジュールのうち、それぞれが 白ならば 0  黒ならば 1 とすると、0 から 9 まで
の数字は、次の表のように定められている。

10進数 セットA セットB セットC
0 0 0 1 1 0 1 0 1 0 0 1 1 1 1 1 1 0 0 1 0
0 0 1 1 0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0
0 0 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 1 1 0 0
0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 0
0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 1 1 1 0 0
0 1 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 1 1 1 0
0 1 0 1 1 1 1 0 0 0 0 1 0 1 1 0 1 0 0 0 0
0 1 1 1 0 1 1 0 0 1 0 0 0 1 1 0 0 0 1 0 0
0 1 1 0 1 1 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0
0 0 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 0 1 0 0

 先ほど計算で求めた20通りは全てセットAとセットBに現れている。セットAとセットC
はちょうど白黒が反転したものになっている。バーコードの左側ではセットAが、右側で
はセットCが使われる。このことは、1回でバーコード全てを読み取ることができないと
き、左と右の2つの部分の一方ずつを、分けて読み込むことを可能にしている。

 バーコードをよく見ると、国コードを表す1桁目の数字がコード化されていない。1桁目
の数字は、2〜7桁目の数字をコード化するのに、セットA、セットBのいずれかを使った
かの組合せによって定めるようになっている。

 因みに、4を表すのに、

      2  3  4  5  6  7
      A  B  A  A  B  B

というセットを使って、2〜7桁目の数字をコード化する。

 以上のことを踏まえて、実際に、個人的なバーコードを作ってみよう。

今、平成14年1月11日12時45分なので、国コード49を入れて、
   4 9 1 4 0 1 1 1 1 2 4 5 のコード化を考える。

まず、チェックデジットを求める。
   (9+4+1+1+2+5)×3=66  4+1+0+1+1+4=11
   よって、66+11=77 より 10−7=3
   従って、チェックデジットは、3である。

以上から、求めるバーコードは、4 9 1 4 0 1 1 1 1 2 4 5 3 となり、

次のような縞模様を得ることができる。
平成14年1月11日12時45分製作

(参考文献:数学セミナー 「身近な数理 バーコード」 (日本評論社)
        日本バーコード株式会社ホームページ 「バーコードのお話」)

(追記) 今、平成17年3月21日なので、このページをアップロードして早3年ということに
    なる。その間、巷間には何やら怪しげなバーコードが普及してきた。

      当HPの「塾長日記(徒然なるままに)」QRコード     3つの角にある「切り出しシンボル」は、データを切り
   出したり傾きなどを検出するためのもの。それらの間
   には、座標を決めるパターンが埋め込まれている。右
   下には歪みを補正するために利用されるパターン(小
   さな四角)も見える。
   (左図のコードは、当HPの塾長日記(徒然なるままに)
    のQRコードである。)   

 職場に届く雑誌の一面に、この2次元バーコードがびっしり印刷されているのを見て、思
わず身を引いてしまうのは私だけだろうか?

 これは、2次元バーコードの一つで、QRコード(Quick Response Code)といわれるもの
である。(QRコードという名称は、(株)デンソーウェーブの登録商標である。)

 トヨタ自動車とデンソーという会社が生産ラインの部品管理のために、1994年に開発、
1999年に日本工業規格(JIS)に制定された。

 縦横21×21から177×177まで、全部で40種類の規格があり、数ミリ角からポスタ
ー大まで大きさもいろいろあるらしい。

 今までのバーコードでは、一定方向にしか情報を書き込めなかったが、この2次元バー
コードは、縦方向、横方向に情報を書き込むことが可能である。そのため、同一の情報な
ら、今までのバーコードに比べて、およそ十分の一程度の大きさで十分であるという。

 数字だけなら、7089字、英数字だと、4296字の情報が書き込めるというから驚きだ。
しかも、30%程度コードの一部に汚れや破損があってもデータの復元は可能らしい。さら
に、3つの角にある「切り出しシンボル」により、360°全方向から読み取りができるという。

 進化したバーコードが、どのような仕組みになっているか、大いに興味があるが、今のと
ころ不明である。携帯電話会社などでは、いろいろな情報を2次元バーコードに変換してく
れるサービスもあるようだ。

 携帯電話でホームページのアドレスを一字一字打ち込むのは辛い。このQRコードを携
帯カメラで撮影して、URLに変換する機能を持つ携帯電話が最近登場している。これなど
は大変便利な機能だ。私の携帯にもこの機能があって重宝している!

 QRコードの進化は著しい。上記では白地に黒のドッとパターンであったが、最近は、カ
ラーのQRコードが出現している。(平成19年6月現在)

 5×5のマス目に、赤・緑・青・黒の色の組合せで、1つのコードを表すのだそうだ。商品
の画像そのものの背景に、これらのQRコードを埋め込み、画像を携帯カメラでとると、直
ちにインターネットにアクセスできるようになるという。便利な世の中になったものだ。


(追記) 令和2年11月18日付け

 バーコードほど知られていないかもしれないが、書籍には大抵、ISBNの数字が裏表紙に
振られている。ISBNは、International Standard Book Number の略称で、書籍等の識別用
に設けられた国際規格である。日本では、1981年からISBNが付けられている。

 今手許にある本 倉本 理 著 「ゆかいな数学勉強法」 には、

  ISBN 4−489−00173−8

とある。2007年以降の書籍だと、先頭に、978が入り、13桁になっている。

  ISBN a1−a234−a56789−a10

において、

 a1は、言語圏を表し、日本語は「4」である。次の、a234 は、出版社の記号である。

56789 は、書籍名で、最後の a10 は、チェックデジットで、次式で求められる。

 10*a1+9*a2+8*a3+7*a4+6*a5+5*a6+4*a7+3*a8+2*a9+a10≡0 (mod 11)

 試しに、ISBN 4−489−00173−8 を当てはめてみると、

 10*4+9*4+8*8+7*9+6*0+5*0+4*1+3*7+2*3+a10

 =234+a10≡3+a10≡0 (mod 11) から、 a10≡-3≡8 (mod 11)

となり、確かに合っている。

 ただし、先頭に「978」が付いた場合は別な計算式となる。

 今手許にある本 ハービー・山口 著 「良い写真とは?」 には、

  ISBN 978−4−907−43592−9

とある。

  ISBN 978−a1−a234−a56789−a10

において、a10 を除いた一番左側の桁から順に 1、3、1、3… を掛け、それらの和を取る。
和を10で割って出た余りを10から引く。但し、10で割った余りが0の場合は、a10=0 とする。

 試しに、計算してみよう。

 9*1+7*3+8*1+4*3+9*1+0*3+7*1+4*3+3*1+5*3+9*1+2*3

=111≡1 (mod 10) なので、 a10=10−1=9 となり、確かに合っている。