问题标签 [luhn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1255 浏览

haskell - Luhn算法实现

我期待luhn 5594589764218858 = True,但它总是False

我知道这可以更容易完成,但我正在关注 Haskell introductory。我认为我唯一的问题是luhn功能。该课程提到可能会出现问题,因为toRevDigits颠倒了数字,但我认为无论如何它应该可以工作。

0 投票
2 回答
1403 浏览

algorithm - Prolog:高效实现 Luhn 算法

我尝试在 SWI-Prolog 中应用 Luhn 算法。但是我在运行时遇到了一些问题。当我用像 123 这样的简单数字进行测试时,它会很快给出结果。如果我用更长的数字(如 5379173895860200)进行测试,它会运行很长时间,以至于我只能中止此执行。需要帮助来发现问题。代码:

0 投票
2 回答
1860 浏览

python - 这是用 Python 编写 Luhn 算法的最有效方法吗?

这是我的 Luhn 算法(信用卡检查器)代码。好吗...

或者我可以让它更短/更高效吗?

0 投票
1 回答
2050 浏览

java - 使用带有字符串的 Luhn 算法在 Java 中验证信用卡

我正在尝试创建一种方法来验证信用卡号,但我们必须将其作为字符串处理

这里有一些关于我的任务的信息......

信用卡号码遵循某些模式。信用卡必须有 13 到 16 位数字。

1954 年,IBM 的 Hans Luhn 提出了一种验证信用卡号码的算法。该算法可用于确定卡号是否正确输入或信用卡是否被扫描仪正确扫描。几乎所有的信用卡号码都是在这个有效性检查之后生成的,通常称为 Luhn 检查或 Modulus 10 检查,可描述如下。为了说明,请考虑卡号 4388576018402625。

从右到左每隔一个数字加倍。如果一个数字加倍得到一个 2 位数的数字,则将这两个数字相加得到一个个位数的数字。2 x 2 = 4

2 x 2 = 4

4 x 2 = 8

1 x 2 = 2

6 x 2 = 12 (1+2= 3)

5 x 2 = 10 (1+0= 1)

8 x 2 = 16 (1+6= 7)

4 x 2 = 8

将步骤 1 中的所有个位数相加 4 + 4 +8 + 2 +3 + 1 + 7 + 8 = 37

将卡号从右到左奇数位的所有数字相加

5 + 6 + 0 + 8 + 0 + 7 + 8 + 3 = 37

将步骤 2 和步骤 3 的结果相加 37 + 37 = 74

如果 step 的结果能被 10 整除,则卡号有效;否则无效。例如号码4388576018402625无效,但号码4388576018410707是有效的Visa卡;号码 6011000593748745 无效,但号码 6011000593748746 是有效的 Discover 卡。

这是我到目前为止所拥有的

我从那里去哪里?^^

谢谢

0 投票
2 回答
494 浏览

java - 无法找出错误 Luhn check

它应该使用 luhn check 4388576018402626invalid 4388576018410707valid 告诉我一张卡是有效还是无效,但它一直告诉我一切都是无效的:/关于做什么或去哪里看的任何提示都会很棒。我被困了几个小时。如果人们告诉我有关如何查找代码未按预期工作的原因的任何提示,这也会有所帮助。我正在使用 eclipse 和 java

0 投票
1 回答
3136 浏览

python - 在python中验证信用卡号码

即使我不明白为什么,我的代码输出也不正确。如果有人能对我的问题有所了解,我将不胜感激。

对于一个任务,我们将允许用户输入一个 15 或 16 位的信用卡号码并返回给定的号码是否有效。

我们正在使用 Luhn 的测试来验证数字,这是我的代码不起作用的地方。卡号 4222222222222220 应该返回有效,但我的卡号不起作用,我相信它是因为我不完全理解代码的含义。

Luhn 的测试:假设信用卡号由以下数字组成:

d15 d14 d13 d12 d11 d10 d9 d8 d7 d6 d5 d4 d3 d2 d1 d0

最后一位 d0 是 Luhn 算法中的校验位。算法如下:

将所有奇数 d1、d3、... d15 乘以 2。

将每个产品的数字相加。

现在将所有偶数 d0、... d14 和奇数的个位数相加。

如果最终总和能被 10 整除,则信用卡有效,否则无效。

我的代码是:

0 投票
3 回答
2139 浏览

java - 用 Java 编写 Luhn 算法

我正在尝试在 Java 中编写 Luhn 算法。

我当前的代码是:

我遇到的问题是,当我输入有效的信用卡号时,例如:4012888888881881(通过PayPal Test Credit Card Accounts),它说它无效。但是当我输入我自己的借记卡号码时,它说它是有效的。

我知道这里有一些代码搞砸了,我就是不知道是什么。

任何帮助将不胜感激,并提前感谢!

0 投票
2 回答
4339 浏览

oracle - PL/SQL 校验位,luhn 使用 MOD 11

所以这里是一个问题:编写代码以获取 id 并确定校验位是否正确

更新代码:

回报是:

应该是6

0 投票
3 回答
87 浏览

javascript - 如何从字符串中计算某些字符

我从昨天开始就在寻找这个,已经搜索了很多,但没有找到任何我需要的答案。如果您发现任何问题,请告诉我,我将不胜感激并关闭此问题:)

我想要的是:

这是我到目前为止所做的:

例子:

希望我很清楚。有人可以帮忙吗?欣赏!

0 投票
2 回答
309 浏览

python - Luhn校验和方法;分隔两位数并找到该列表的总和

我目前正在尝试使用 luhn 方法来确定信用卡在 python 中是否有效,这是我目前所拥有的:

我不知道下一步该怎么做,即得到数字的所有数字的总和乘以 2。(listx2)我用 luhn 方法查看了不同的程序,但我似乎无法选择那部分。谢谢!