• ベストアンサー

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

一覧番号の桁数の中にチェクウデジットを設けようという話が合った場合に、仕様決めからプログラミングでのチェックの仕方まで、どのような段取りで進めれば良いか解りません。(初めて使うので) 知りたいこと。     1.チェックデジットの仕様の決め方。(最重要)   2.決めたらそれをどのようにプログラミングに落としていくのか。   3.チェックの仕方。   ※尚、開発言語はJAVAです。 解る方、やさしく、詳しく教えてください。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

●チェックディジット数字の付加過程 1.番号やコードの各桁のウェートを定める. 1,2,1,2,1,2...など使ったことあります。 (注)a1*w1+a2*w2+a3*w3+...のW1,W2,w3,..をウエイトということあり。 2.対象とする番号などの各桁の値と各ウェートを対応する桁どうしで乗算する。そしてその積の和を求める。 3.モジュラスというものを決める。10とか11とかがある。 4.モジュラスを11とした場合、11で割る。余りが出るが、モジュラス11から余りを引いたものを計算する。 その数字をチェックディジットとし、番号の最後の1桁として加える。 5.モジュラス11では余りが2桁になる可能性があるため その時は10位の数と1位の数字を加えてから11から引く。 ●誤りの検出過程 番号が入力されたときは、右端の1桁(チェックディジット)を除いて、上記1から5までの計算をする。 その計算の結果出てきた数字をチェックディジットと比べて 不一致だとチェックディジットエラーとする。 ●誤り検出力の理論 どう言うウエイトを使うか、モジュラスをいくつにするかによって誤り検出力の理論もありますが、WEB検索ででも探してください。 プログラムコーディングも略します。

minekichi
質問者

お礼

これは、大変助かります。 ありがとうございました。

その他の回答 (1)

  • zzzzzz
  • ベストアンサー率61% (70/113)
回答No.1

チェックディジットの使用目的を特定する必要があります。 一般には誤りの検出、ということですが、目的によって「どのような誤りが生じやすいのか」が異なりますから、 そこを特定しなければ仕様は決定できません。 単発的な誤りの生じ方に関してはそれほどの差異はないでしょうが、 バーストエラーに関しては指向性がありますので。 なお、3は仕様に含めるべきと考えます。

minekichi
質問者

お礼

ありがとうございます。 3.を仕様に含めて考えなくてはいけませんね。 助かりました。

関連するQ&A