dポイントプレゼントキャンペーン実施中!

パリティチェックのために、つかう素数の判定法で、
どうして Sum of sum を使いますか?


123bc の誤り判定
1×5 + 2×4 + 3×3 + 11×2 + 12×1 = 56 != mod 37 のため 誤りあり

ごめんなさい。あまり数論など、苦手

A 回答 (1件)

sum of sums


mod 37なら36文字までの長さのメッセージのエラーチェックができます。最後の桁はsumがmod 37≡0になるように決定します。

37文字だと長いので本の裏にあるISBNコード10ケタを例にすると
(978がついている13ケタのは計算方法が異なります)

ISBN 0521871484
0 x10 =0
5 x9 =45
2 x8 =16
1 x7 =7
8 x6 =48
7 x5 =35
1 x4 =4
4 x3 =3
8 x2 =16
4 x1 =4
sum=187
187 mod 11≡0

ISBN 0521871484の左から3桁目と4桁目が入れ替わってしまったとします。0512871484

0 x10 =0
5 x9 =45
1 x8 =8
2 x7 =14
8 x6 =48
7 x5 =35
1 x4 =4
4 x3 =3
8 x2 =16
4 x1 =4
sum=186
186 mod 11≡10
エラーだとわかります。

mod 5にしたらどうかというと
チェックデジットは2になります。0521871482
0 x10 =0
5 x9 =45
2 x8 =16
1 x7 =7
8 x6 =48
7 x5 =35
1 x4 =4
4 x3 =3
8 x2 =16
2 x1 =2
sum=185
185 mod 5≡0

上と同じく3桁目と4桁目が入れ替わってしまったとします。0512871482
0 x10 =0
5 x9 =45
1 x8 =8
2 x7 =14
8 x6 =48
7 x5 =35
1 x4 =4
4 x3 =3
8 x2 =16
2 x1 =2
sum=184
184 mod 5≡4
でエラーだとわかります。

ではなぜmod 11でなければならないかというとmod 5ではチェックデジットが7であったとしてもエラーにはなりません。また5倍している左から6桁目の数字はいくつであってもエラーにはなりません。10ケタの数字を扱うには11以上の素数でなければなりません。
    • good
    • 2
この回答へのお礼

ありがとう

ありがうございます。
すこし、難しいと思いました

お礼日時:2022/11/10 17:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!