我对 Luhn 算法有疑问。用于错误检测和校验和数字的 luhn 算法 (mod 10)。例如签证、信用卡等数字。
例如我们有数字:Digits 1 2 3 4 5 6 7 8 9 3
第 1 步:从最右边的第二个数字开始,将备用数字的值乘以 2。示例:数字 1 2 3 4 5 6 7 8 9 3 乘数 X2 X2 X2 X2 X2
Step2:将上述产品的所有单个数字与原始数字中的未加倍数字相加。如果更多 10 则加或减 9。数字。
例子:
Digit 1 2 3 4 5 6 7 8 9 3
Multiplier X2 X2 X2 X2 X2
Result 2 2 6 4 10 6 14 8 18 3
1+0 1+4 1+8
Sum 2+ 2+ 6+ 4+ 1+ 6+ 5+ 8+ 9+ 3 = 40
步骤3:若总模10等于0,则根据LUHN公式该数有效;否则无效。例子。40 mod 10 = 0 所以有效,如果不是 0 那么无效。
问题是,为什么在步骤 2 中使用乘以 2?什么原因?(请提供链接参考或论文)。谢谢