当我们使用 Luhn 算法验证信用卡时,为啥要反转数字?
Posted
技术标签:
【中文标题】当我们使用 Luhn 算法验证信用卡时,为啥要反转数字?【英文标题】:Why shall we reverse the digits when we use Luhn's Algorithm for validating a credit card?当我们使用 Luhn 算法验证信用卡时,为什么要反转数字? 【发布时间】:2017-09-11 17:30:23 【问题描述】:我正在尝试实现验证信用卡的Luhn算法,有一个步骤是我们反转卡号,为什么需要反转号码?
【问题讨论】:
Luhn algorithm中没有这个步骤。 @AlexP 一些网站正在写这一步。我会按照***的说法。 混淆的部分原因可能是您应该从最右边的数字开始,然后向左移动。这当然与反转数字,然后向右移动相同。 【参考方案1】:Luhn 算法涉及将数字中的每隔一个数字加倍,这样最右边的数字(校验位)就不会加倍。这意味着最左边的数字可能会或可能不会加倍,具体取决于该数字是奇数位还是偶数位。处理这种变化的一种方法是颠倒数字,并且总是以非双倍数字开头——但这对我来说似乎有点过头了;有多种解决方案(例如以相反的顺序索引数字)比反转数字的工作量少。
【讨论】:
以上是关于当我们使用 Luhn 算法验证信用卡时,为啥要反转数字?的主要内容,如果未能解决你的问题,请参考以下文章