• ベストアンサー

チェックディジットの効果について教えてください。

仕入伝票、売上伝票のほかバーコード番号の下1桁には、チェックディジットが採用されていると聞きます。そしてその算出方法も奇数桁の各数字の和や偶数桁の各数字の和などから算出されているのはわかります。でも最後のチェックディジットとはいえ1ケタの数ですから入力し間違えの確率としては いつでも1/10(十分の一)で当たることにはならないのでしょうか?何万分の一でしか入力ミスがでないとか、かなりの確率で入力ミスを防げるのならこのディジットの存在意義はわかるのですが、今はこの数(ディジット)の意義がいまいちわかりません。   でたらめにこのディジットを入力しても1/10、つまり10回に1回の割合でその正確な番号にたどり着くことになると思うのですが・・・・。    お教えください。何のためにこのディジットがあって、どんな利点があるのかをわかりやすくお教えください。(計算式の説明を伺っているのではありませんのでお間違えなく・・・・・)

質問者が選んだベストアンサー

  • ベストアンサー
  • boiseweb
  • ベストアンサー率52% (57/109)
回答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つの桁の数字の入れ替わりを確実に検出できます。

その他の回答 (4)

  • itou2618
  • ベストアンサー率26% (319/1209)
回答No.5

銀行の口座番号は7桁の数字が一般的です。 7桁の数字の下1桁がチェックディジットです。 伝票に記載された口座番号を打鍵入力しますが、それをバンキングオンラインシステムでチェックディジット計算して入力のチェックディジットと一致するかチェックします。 よほどひどい入力ミスをしないかぎり、間違った口座にお金を入出金することが防げます。

noname#231223
noname#231223
回答No.3

チェックディジットというのは、あらかじめ計算された数値が書いてあるモノをそのまま入力するものであって、その場で算出して入力したり、ましてや当てずっぽうで入力するようなものではないのです。 そして、チェックディジット以外の本体の数字に間違いがなければ、チェックディジットを間違えるとほぼ確実にエラーになります。 チェックディジット以外の数字を1桁間違えただけなら、さらにチェックディジット自体も(たまたま)その間違った数字に対応するものに間違えないと、エラーは起きます。 逆に、チェックディジットとたまたま一致する間違いを起こすには、本来の数字の方で2桁以上間違えないと・・・。 (最悪でも1/10×1/10=1/100の確率、3桁以上の間違いならもっと・・・) 付与する段階でチェックディジットに誤りがあれば、もれなくエラーになるはずです。

  • etranger-t
  • ベストアンサー率44% (769/1739)
回答No.2

元SEです。 伝票などの番号が、単なる連番で発番されているのなら質問者様の仰るように1/10の確率で当たることになります。 ただ、様々な施設や部署で発番している番号と言うのは、単なる連番ではなく、例えば上4桁に意味があって、下4桁に別の意味を持たせているなどの工夫がされています。このような発番方式にしておけば、チェックデジット以前の番号の時点で一致する確立が極めて低く、そこにチェックデジットが附番されていると、ほとんど奇跡的にしか一致することはありません。そういう意味で、チェックデジットを付ける意味は大きいと思います。 もう一つの意味は、他の方も回答されている通り、入力間違いに気付くために附番しています。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

チェックディジットの効果は「入力ミスを防ぐ」ことではありません (というか, 「入力ミスを防ぐ」という点については逆効果). 「間違いに気付く」ことにあります.

関連するQ&A

  • チェックディジット?

    チェックディジット? 40757851-0 40757852-8 40757853-6 40757854-4 40757855-2 上記の様な番号を会社で使っているんですが 左8桁(ハイフンから左側)は 見て頂くとわかるようにただカウントしていってるだけなのですが、 一番右の1桁(ハイフンの右側)の番号にどういう規則があって算出されてるのか知りたいのです。 私なりにインターネット等でいくつかのチェックディジット? の算出方法で試しても合いません・・・ 下手な文章で分かりづらいとは思いますが、 どなたかお分かりの方教えていただけないでしょうか?

  • コード入力誤りを防止するための、チェックデジットについて

     例えば、10桁のコード入力誤りを防止するために、複雑な計算をして11桁目のチェックデジットを決めています。(それぞれの数字に、いろいろな数を掛け、その合計を11で割り、その余りを11から引いた後の数) しかし、11桁目のチェックデジットは0~9までの10個の数字ですので、間違いを発見できる確率は複雑な計算をしてもあまり変わらないのではないでしょうか?  素人ですので、わかりやすく教えてもらえればありがたいです。  わかりやすく説明されている、本でも結構です。

  • アクセスを使って整数を入力するときにチェックデジットで入力が違うと警告するようにするには

    アクセスを使って整数番号を入力するときにその整理番号にチェックデジットがかかっているのですが(算式はわかりません)、入力した整数が違うと警告するようにするにはどうすればいいのでしょうか。整理番号は7桁です。 算式がわからないので解答のしようがないかもしれませんが・・・ 素人でアクセスもチェックデジットについても詳しくないのですが、分かる方がいれば教えてください。 質問の意味はうまく伝わってるでしょうか?

  • チェックデジットについて

    CIAという試験の勉強をしているのですが、以下の問題が理解できず困っています。 ご教授願います。 (問題) 入力統制のうち、元々あった数値データの加工もしくは転送中に変化していないかを確認するために、何らかの計算を施された数値データは次のどれか A ハッシュトータル B パリティチェック C 暗号化 D チェック・デジット (解答) D (解説) チェックデジットとは、ID番号末尾に追加する桁のことで、データ加工・転送等によってデータが変化していないかどうかを確認する入力統制であり、正解はD ハッシュトータルは、データ項目の合計に関連するチェックであるので、Aは誤り。 パリティチェックは、各キャラクターに1ビット分付加し、ハードウウェア内でのキャラクター転送によりこのビットが失われていないかを確認するプロセスであるので、Bは誤り。 暗号化はセキュリティー保持のための処理であり、入力統制ではないのでCも誤り。 (質問) チェックデジットは、入力エラーを防止するためのものと私は理解しています。 解説では、「データ加工・転送等によってデータが変化していないかどうかを確認する入力統制」とされています。 この点がイメージできません。 パリティチェックやハッシュトータルの方が正解になるような気がしているのですが・・ よろしくお願いします。

  • アクセスを使って整数を入力するときにチェックデジットで入力が違うと警告するようにするには (新

    前回の質問がかなり抽象的で意味がわかりずらかったと思いますので追加します。 自分なりにしらべた結果、チェックデジットの計算方法は次のとおりでした。 整数は6桁で一番最後の桁がチェックデジットになっています。 例えば、540838という番号なら最初の5の桁に6をかける(5×6=30) 次の桁は4に5をかける(4×5=20)次の桁は0に4をかける(0×4=0) 以下、8×3=24、3×2=6と計算し、出た答えを全部たした(30+20+0+24+6=80)80を最初に超える11の整倍数からひく(88-80=8)と最後の桁と一致すればその番号は正しく入力されていると判断できるしくみになっています。 この演算式をアクセスでデータ入力した際に、自動的に演算計算して、チェックデジットが一致していないときは、警告するようにしたいのですが、この算式をアクセスでどのように入力すればいいのかわかりません。また、そもそも、アクセスでこんな演算式を入れることができるのかもわかりません。 素人で申し訳ないのですが、わかるかたがいれば教えてください。 関連URL:http://oshiete1.goo.ne.jp/kotaeru.php3?qid=128693

  • チェックデジットを付加したデータを生成したい。

    MSアクセス2000を使用しています。 アクセス初心者なので、的はずれなことも言っているかもしれませんが、よろしくお願いします。 13桁のバーコードデータを作成したいのですが、必要なのは数値だけで、バーコードそのものは必要ありません。 たとえば、12桁の商品番号と、商品名だけで構成されるデータがあったとして、商品番号からチェックデジットを計算し、新たな項目にチェックデジット付きのデータを入れてくれるような方法はないでしょうか? また、使用するソフトは、アクセスだけでなくても構いません。エクセルや他のソフトを使ってチェックデジット付の数値のみのデータを取得する方法を探しています。 よろしくお願いします。

  • JANコードのチェックデジットを調査

    いつもお世話になっております。 エクセルファイルに13ケタ・8ケタのJANコードを羅列した行があるのですが、手作業で入力した為、間違っている可能性があります。 そこで、チェックデジットが合っているかを調べる数式を作成したいと思うのですが、そのようなことは可能でしょうか? また、8ケタと13ケタを1度にチェックできるでしょうか? ご存知の方がいらっしゃったら、宜しくご教授お願い致します。

  • チェックデジット(M10W21)を使ったエクセルでのデータ管理

     エクセルでデータ管理していますが、チェックデジット(M10W21)を入力した管理番号をそれぞれに振りたいと思いますが何か良い計算式はありますか?  なお、400くらいのデータがありますので同一シート(例えばA1にデータ、B2にチェックデジット付きの管理番号)で処理したいんですが・・。 よろしくお願いします。

  • チェックデジットについて

    CIAという試験の勉強をしているのですが、下記の問題が良くわからなくて困っています。 正解は選択肢2、3です。 選択肢2、3が正解なのは理解できました。 しかし、選択肢1がどのようなことを言っているのがイメージがつかなくて困っています。 どなたがご教授願います。 (問題) カタログ販売会社が注文とは違う商品を顧客に発送するという事態が頻発している。 多くの顧客は電話で注文をし、その注文を受けた後、オペレーターはすぐに注文システムにデーター入力している。 これが適正に行なわれない場合、この問題に対して有効な統制手続は次のどれか。 (選択肢) 1 コンピューターに、注文の連番を自動的にそれぞれの顧客注文に割り当てさせる 2 それぞれの製品番号に対し、チェック・デジットを組み込み、製品番号による入力を要求する 3 製品番号による入力を要求し、コンピューターのプログラムに製品と価格を特定させ、顧客との製品内容についての口頭での確認をオペレーターにさせる

  • クレジットカードのチェックデジットについて

    電話で自動受注をするシステムの企画をしております。 クレジットカードの番号を聞くような部分を作っているのですが、クレジットカードのチェックデジットの仕組みってどうすれば教えてもらえるか、それともそもそも非公開のものなのかご存知の方教えてください。 よく、Web上でカード番号を入力した時に、カード番号を間違えるとエラーになったりするので、どこかで申請すれば情報がもらえるのではと期待してます。 よろしくお願いします。