- ベストアンサー
チェックディジットの効果について教えてください。
仕入伝票、売上伝票のほかバーコード番号の下1桁には、チェックディジットが採用されていると聞きます。そしてその算出方法も奇数桁の各数字の和や偶数桁の各数字の和などから算出されているのはわかります。でも最後のチェックディジットとはいえ1ケタの数ですから入力し間違えの確率としては いつでも1/10(十分の一)で当たることにはならないのでしょうか?何万分の一でしか入力ミスがでないとか、かなりの確率で入力ミスを防げるのならこのディジットの存在意義はわかるのですが、今はこの数(ディジット)の意義がいまいちわかりません。 でたらめにこのディジットを入力しても1/10、つまり10回に1回の割合でその正確な番号にたどり着くことになると思うのですが・・・・。 お教えください。何のためにこのディジットがあって、どんな利点があるのかをわかりやすくお教えください。(計算式の説明を伺っているのではありませんのでお間違えなく・・・・・)
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
まず,チェックディジットの意義は「入力にエラーがあったときに、『その入力は誤りである』という事実に気づく」(エラーを検出する)ことにあります。 チェックディジットによるエラー検出力を考えるとき,「全くデタラメな」エラーの起こり方(たとえば,入力されたすべての桁がランダムな数字に置き換わる)を想定するのでなく,「ありそうな」タイプのエラー(1桁だけ数字が置き換わる,とか)を想定するのが普通だと思います. 13桁JANコード(スーパーのレジで読み取る商品バーコードや書籍の13桁ISBN)のチェックディジットを例に,次の2つのタイプのエラーを検出することを考えてみましょう. (1) 13桁のうち1桁だけ異なる数字に変化 (2) 隣り合う2つの桁の数字が入れ替わる (1)はOCR文字やバーコードを機械的に読み取るときに,汚れなどが原因で発生しうるタイプのエラーで,(2)は口頭で数字を伝えたり手作業で数字を書き写したりするときに発生しやすいエラーです。 で,13桁JANコードのチェックディジット算出方法を注意深く観察すると, (1)のタイプのエラーは必ず検出可能 (2)のタイプのエラーは確率40/45で検出可能(確率5/45で見逃し) であることがわかります. 一方,13桁のうち2桁離れた2つの数字(たとえば3桁めと5桁目)が入れ替わった場合,チェックディジットは全く無力です(必ず見逃します).でも,現実的にはそういうエラーはきわめて起こりにくいと考えられます. 13桁JANコードのチェックディジットは,(1)(2)という「経験的に起こりやすいタイプのエラー」を想定して,そのタイプのエラーを高確率で検出する意図で付与されているのです. 蛇足ながら,(旧規格である)10桁ISBNのチェックディジットはもう少し工夫されていて,任意の2つの桁の数字の入れ替わりを確実に検出できます。
その他の回答 (4)
- itou2618
- ベストアンサー率26% (319/1208)
銀行の口座番号は7桁の数字が一般的です。 7桁の数字の下1桁がチェックディジットです。 伝票に記載された口座番号を打鍵入力しますが、それをバンキングオンラインシステムでチェックディジット計算して入力のチェックディジットと一致するかチェックします。 よほどひどい入力ミスをしないかぎり、間違った口座にお金を入出金することが防げます。
チェックディジットというのは、あらかじめ計算された数値が書いてあるモノをそのまま入力するものであって、その場で算出して入力したり、ましてや当てずっぽうで入力するようなものではないのです。 そして、チェックディジット以外の本体の数字に間違いがなければ、チェックディジットを間違えるとほぼ確実にエラーになります。 チェックディジット以外の数字を1桁間違えただけなら、さらにチェックディジット自体も(たまたま)その間違った数字に対応するものに間違えないと、エラーは起きます。 逆に、チェックディジットとたまたま一致する間違いを起こすには、本来の数字の方で2桁以上間違えないと・・・。 (最悪でも1/10×1/10=1/100の確率、3桁以上の間違いならもっと・・・) 付与する段階でチェックディジットに誤りがあれば、もれなくエラーになるはずです。
- etranger-t
- ベストアンサー率44% (766/1736)
元SEです。 伝票などの番号が、単なる連番で発番されているのなら質問者様の仰るように1/10の確率で当たることになります。 ただ、様々な施設や部署で発番している番号と言うのは、単なる連番ではなく、例えば上4桁に意味があって、下4桁に別の意味を持たせているなどの工夫がされています。このような発番方式にしておけば、チェックデジット以前の番号の時点で一致する確立が極めて低く、そこにチェックデジットが附番されていると、ほとんど奇跡的にしか一致することはありません。そういう意味で、チェックデジットを付ける意味は大きいと思います。 もう一つの意味は、他の方も回答されている通り、入力間違いに気付くために附番しています。
- Tacosan
- ベストアンサー率23% (3656/15482)
チェックディジットの効果は「入力ミスを防ぐ」ことではありません (というか, 「入力ミスを防ぐ」という点については逆効果). 「間違いに気付く」ことにあります.