Negli Stati Uniti, usano l'algoritmo Luhn:
link
In che modo l'algoritmo verifica un numero:
- Dalla cifra più a destra, che è la cifra di controllo, spostandosi a sinistra, raddoppia il valore di ogni seconda cifra; se il prodotto di questa operazione di raddoppiamento è maggiore di 9 (ad es. 8 × 2 = 16), somma le cifre dei prodotti (ad es. 16: 1 + 6 = 7, 18: 1 + 8 = 9).
- Prendi la somma di tutte le cifre.
- Se il totale del modulo 10 è uguale a 0 (se il totale termina con zero), il numero è valido secondo la formula di Luhn; altrimenti non è valido.
Come calcolare la cifra di controllo:
La cifra di controllo si ottiene calcolando la somma di cifre, quindi calcolando 9 volte il valore di modulo 10. In forma algoritmica:
- Calcola la somma delle cifre (dopo il raddoppio di ogni seconda cifra).
- Moltiplica per 9.
- L'ultima cifra è la cifra di controllo.
Esempio:
Numero: 4321-5678-7531-456x
(dove x
è la cifra di controllo).
1. Number: 4 3 2 1 5 6 7 8 7 5 3 1 4 5 6 X
2. Double every second: 8 4 10 14 14 6 8 12
3. Sum digits >9: 8 3 4 1 1 6 5 8 5 5 6 1 8 5 3
4. Sum all digits: 8 + 3 + 4 + 1 + 1 + 6 + 5 + 8 + 5 + 5 + 6 + 1 + 8 + 5 + 3 = 69
5. Multiply sum by 9: 69 x 9 = 621
6. Take value mod 10: 621 mod 10 = 1 => x = 1
La cifra di controllo è 1
e il numero valido completo è 4321-5678-7531-4561
.
Se dovessi eseguire di nuovo l'algoritmo per verificare il numero, la somma di tutte le cifre nel passaggio 4 sarebbe 69 + 1 = 70
. Quindi, 70 mod 10 = 0
, quindi il numero è valido in base all'algoritmo.