luhn算法可以使用的最小长度是多少?

时间:2020-03-06 14:53:44  来源:igfitidea点击:

不包括校验位,luhn算法将使用的最小长度是多少?

我的想法是,它将适用于任何大于2位的数字(同样,不包括校验位)。

我问的原因是这样的:
如果我从右到左遍历数字中的所有数字。
如果数字是3位数或者更小,这会导致我的luhn验证中的i%2 == 0(用于在数字中查找替代位置)失败(例如125-在纸面上似乎是有效数字)

显然,我可以将条件从i%2 == 0更改为其他值,但是如果它对于算法而言不是正确的行为,那么我将很高兴知道。

解决方案

鲁恩的算法可以在两位数上工作。如果一位数字错误以及某些(但不是全部)数字移位的情况,它将发出警告。哎呀,理论上它只能用一位数字,但这不是很有用。我们可以通过固定一位数字,然后更改另一位数字并验证另一位数字的每个值将给出唯一的"校验和"来亲自查看。但是,只有两位数字,只需在mod 10中添加数字就可以为我们提供相同的属性,但不会捕获任何移调错误。