1
私はモジュロ10の桁の加重和を使って簡単なチェック桁を実装することを考えました。チェック桁として役立つだけでなく、チェック桁を乱用して番号が属する2つのプール(例えば、商品番号と顧客番号)。決して衝突しない桁の重みをチェックする
Article Numbers: Weights 1, 3, 7, 1, 3, 7, ...
Customer Numbers: Weights 7, 9, 1, 7, 9, 1, ...
Number 1234 as an Article Number (1*1+2*3+3*7+4*1 mod 10 = 2): 12342
Number 1234 as a Customer Number (1*7+2*9+3*1+4*7 mod 10 = 6): 12346
問題があるが、時々これは両方に同じチェックデジットを与えること:
はWikipediaによれば、例えば、私が選ぶことができるように、重みとして1、3、7、9を使用することをお勧めします体重の設定:
Number 1098 as an Article Number (1*1+0*3+9*7+8*1 mod 10 = 2): 10982
Number 1098 as a Customer Number (1*7+0*9+9*1+8*7 mod 10 = 2): 10982
私は、任意の元の数のために、チェックデジットは両方のプールのために決して同じではないことが保証されるような方法で数プールの重みを選ぶことはできますか?
番号の範囲は両方とも連続しています。しかし、すべての商品番号のチェックデジットが偶数であることと、すべての顧客チェックデジットが奇数になるように強制することができます。 – AndreKR