Java luhn算法的最小长度是多少?

Java luhn算法的最小长度是多少?,java,algorithm,Java,Algorithm,除去校验位,luhn算法将使用的最小长度是多少 我的想法是,它适用于任何大于2位的数字(同样,不包括校验位) 我问的原因是: 如果我从右到左遍历数字中的所有数字。 这会导致我的luhn验证中的i%2==0(用于查找数字中的替代位置),如果数字为3位或更小(例如125——纸面上似乎是一个有效数字),则验证失败 显然,我可以将我的条件从I%2==0更改为其他条件,但如果这不是该算法的正确行为,最好知道。Luhn的算法将在两位数上工作。如果单个数字错误,以及某些(但不是全部)数字被转置的情况,它将发出

除去校验位,luhn算法将使用的最小长度是多少

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

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


显然,我可以将我的条件从I%2==0更改为其他条件,但如果这不是该算法的正确行为,最好知道。

Luhn的算法将在两位数上工作。如果单个数字错误,以及某些(但不是全部)数字被转置的情况,它将发出警告。见鬼,理论上一个数字就行了,但那不是很有用。您可以通过固定一个数字,然后更改另一个数字,并验证另一个数字的每个值是否会给出唯一的“校验和”来查看。然而,对于只有两个数字的情况,只需添加mod 10的数字就可以得到相同的属性,但它不会捕获任何转置错误。

Luhn的算法适用于两个数字。如果单个数字错误,以及某些(但不是全部)数字被转置的情况,它将发出警告。见鬼,理论上一个数字就行了,但那不是很有用。您可以通过固定一个数字,然后更改另一个数字,并验证另一个数字的每个值是否会给出唯一的“校验和”来查看。但是,仅使用两个数字,仅添加mod 10的数字就可以获得相同的属性,但它不会捕获任何转置错误。

i%2有什么问题吗。你从左边的数字开始,一路往下走。如果你有125,支票数字可能是5。但是,使用i%2无法获得有效的数字,因为它使校验数字加倍,而不是“2”。对125运行Luhn算法,1和5将“加倍”,而得到221,数字将相加到5。i%2有什么问题。你从左边的数字开始,一路往下走。如果你有125,支票数字可能是5。但是,使用i%2无法获得有效的数字,因为它使校验数字加倍,而不是“2”。对125运行Luhn算法时,1和5将“加倍”,而get 221将数字相加到5。