Talk:Luhn mod N algorithm
Appearance
| This article is rated Start-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | |||||||||||
| |||||||||||
Problems if N is odd
[edit]While implementing this algorithm, I noticed an interesting property for odd N:
Consider the case of base-9. For doubled positions, this occurs:
| Original digit | Doubled | Reduced |
|---|---|---|
| 0 | 0 (009) | 0 |
| 1 | 2 (029) | 2 |
| 2 | 4 (049) | 4 |
| 3 | 6 (069) | 6 |
| 4 | 8 (089) | 8 |
| 5 | 10 (119) | 2 |
| 6 | 12 (139) | 4 |
| 7 | 14 (159) | 6 |
| 8 | 16 (179) | 8 |
This means that, for base-9, e.g. both '1' and '5' in doubled positions are equivalent. This has the following consequences for odd N:
- The algorithm cannot detect all single-digit errors; "17" and "57" both have valid check digits for _sum_ ≡ 0 (mod 9)
- If it is necessary to have the computed value be in a "doubled" position, it is not be possible to obtain the required modulo sum for all input cases.