2011-07-04 11 views
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 

私は、任意の元の数のために、チェックデジットは両方のプールのために決して同じではないことが保証されるような方法で数プールの重みを選ぶことはできますか?

答えて

0

私は確かに徹底的なチェックをしなければならないかもしれませんが、それは可能でしょうか。

偶数番号を商品番号に、奇数番号を顧客番号などに使用することについて考えましたか?

+0

番号の範囲は両方とも連続しています。しかし、すべての商品番号のチェックデジットが偶数であることと、すべての顧客チェックデジットが奇数になるように強制することができます。 – AndreKR

関連する問題