
仕入伝票、売上伝票のほかバーコード番号の下1桁には、チェックディジットが採用されていると聞きます。そしてその算出方法も奇数桁の各数字の和や偶数桁の各数字の和などから算出されているのはわかります。でも最後のチェックディジットとはいえ1ケタの数ですから入力し間違えの確率としては
いつでも1/10(十分の一)で当たることにはならないのでしょうか?何万分の一でしか入力ミスがでないとか、かなりの確率で入力ミスを防げるのならこのディジットの存在意義はわかるのですが、今はこの数(ディジット)の意義がいまいちわかりません。
でたらめにこのディジットを入力しても1/10、つまり10回に1回の割合でその正確な番号にたどり着くことになると思うのですが・・・・。
お教えください。何のためにこのディジットがあって、どんな利点があるのかをわかりやすくお教えください。(計算式の説明を伺っているのではありませんのでお間違えなく・・・・・)
No.4ベストアンサー
- 回答日時:
まず,チェックディジットの意義は「入力にエラーがあったときに、『その入力は誤りである』という事実に気づく」(エラーを検出する)ことにあります。
チェックディジットによるエラー検出力を考えるとき,「全くデタラメな」エラーの起こり方(たとえば,入力されたすべての桁がランダムな数字に置き換わる)を想定するのでなく,「ありそうな」タイプのエラー(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つの桁の数字の入れ替わりを確実に検出できます。
No.5
- 回答日時:
銀行の口座番号は7桁の数字が一般的です。
7桁の数字の下1桁がチェックディジットです。
伝票に記載された口座番号を打鍵入力しますが、それをバンキングオンラインシステムでチェックディジット計算して入力のチェックディジットと一致するかチェックします。
よほどひどい入力ミスをしないかぎり、間違った口座にお金を入出金することが防げます。
No.3
- 回答日時:
チェックディジットというのは、あらかじめ計算された数値が書いてあるモノをそのまま入力するものであって、その場で算出して入力したり、ましてや当てずっぽうで入力するようなものではないのです。
そして、チェックディジット以外の本体の数字に間違いがなければ、チェックディジットを間違えるとほぼ確実にエラーになります。
チェックディジット以外の数字を1桁間違えただけなら、さらにチェックディジット自体も(たまたま)その間違った数字に対応するものに間違えないと、エラーは起きます。
逆に、チェックディジットとたまたま一致する間違いを起こすには、本来の数字の方で2桁以上間違えないと・・・。
(最悪でも1/10×1/10=1/100の確率、3桁以上の間違いならもっと・・・)
付与する段階でチェックディジットに誤りがあれば、もれなくエラーになるはずです。
No.2
- 回答日時:
元SEです。
伝票などの番号が、単なる連番で発番されているのなら質問者様の仰るように1/10の確率で当たることになります。
ただ、様々な施設や部署で発番している番号と言うのは、単なる連番ではなく、例えば上4桁に意味があって、下4桁に別の意味を持たせているなどの工夫がされています。このような発番方式にしておけば、チェックデジット以前の番号の時点で一致する確立が極めて低く、そこにチェックデジットが附番されていると、ほとんど奇跡的にしか一致することはありません。そういう意味で、チェックデジットを付ける意味は大きいと思います。
もう一つの意味は、他の方も回答されている通り、入力間違いに気付くために附番しています。
No.1
- 回答日時:
チェックディジットの効果は「入力ミスを防ぐ」ことではありません (というか, 「入力ミスを防ぐ」という点については逆効果). 「間
違いに気付く」ことにあります.お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java Java 配列<選挙> 4 2023/07/31 15:07
- その他(データベース) 4進数風なバーコードは何ですか? 2 2022/11/28 23:33
- 数学 時々、回答者の見識に疑念を抱いてしまうんです。私だって本当は皆様のことを疑いたくはありません。しかし 2 2022/11/27 12:23
- 高校 有効数字計算 確定した値を含む 2 2023/01/18 06:03
- Java Java 南京錠 2 2023/02/04 11:46
- スーパー・コンビニ 今日初バイトでコンビニなんですが、レジ打ちを初めてやり凄く恥ずかしい思いしてしまい、私昔から算数や数 3 2023/07/20 19:38
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- その他(コンピューター・テクノロジー) 量子コンピュータの動作原理がわかりません。同じビットが、1でも0でも有って良いだろうか? 3 2023/02/04 03:20
- Excel(エクセル) エクセルのセルの書式設定・ユーザー定義の条件設定について 1 2022/08/17 21:56
- 化学 有効数字の取り扱いについて 高校化学では、測定値同士の計算結果の有効数字は、測定値に合わせるようにな 4 2022/06/30 14:07
このQ&Aを見た人はこんなQ&Aも見ています
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelでエラー(#N/Aなど)値を...
-
ExcelでVBAを使用した際に、『...
-
Chatgptから送られてきたリンク...
-
VLOOKUP関数についての質問です...
-
もしセルが"#N/A"なら~をする...
-
SUM関数の範囲に#N/Aが...
-
エクセルのエラー文について
-
送信エラー時、レポートメール...
-
自動改札のエラーって…
-
Eエクセルの計算方法で空欄を0...
-
VBAで「致命的なエラー」が出ま...
-
VLOOKUPで求めた数値をさらにVL...
-
ACCESS VBA でのエラー解決の根...
-
Facebookでこのようなエラーが...
-
システムエラーです:&H80004005...
-
ACCESS クエリについて
-
■□■読み方■□■ #N/A, #VALUE!, ...
-
不正なアクセスらしいんですが...
-
「-2147012889」というエラーで...
-
EXCELマクロで☓400とでます
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでエラー(#N/Aなど)値を...
-
もしセルが"#N/A"なら~をする...
-
ExcelでVBAを使用した際に、『...
-
VLOOKUP関数についての質問です...
-
SUM関数の範囲に#N/Aが...
-
送信エラー時、レポートメール...
-
ACCESS VBA でのエラー解決の根...
-
Chatgptから送られてきたリンク...
-
VLOOKUPで求めた数値をさらにVL...
-
VBAで「致命的なエラー」が出ま...
-
Eエクセルの計算方法で空欄を0...
-
エクセルのエラー文について
-
■□■読み方■□■ #N/A, #VALUE!, ...
-
自動改札のエラーって…
-
エラーコードがわかりません
-
【Excel2003】全く同じ関数なの...
-
システムエラーです:&H80004005...
-
EXCELマクロで☓400とでます
-
改札エラーについて
-
ヤフー知恵袋についてです。自...
おすすめ情報