Pagina 1 di 1

Formula di Luhn

Inviato: 14 giu 2009, 22:29
da Enrico Leon
Solo stasera ho scoperto questo bell'algoritmo:
http://it.wikipedia.org/wiki/Formula_di_Luhn
Ho provato con la mia Carta, funziona!
Visto che "la formula è stata studiata per rilevare errori di digitazione", mi sono allora posto le seguenti domande:

a) Se parto da un codice valido e modifico esattamente una cifra, posso ottenere un altro codice valido?

b) La stessa cosa se scambio tra loro due cifre adiacenti.

Inviato: 14 giu 2009, 23:19
da SkZ
la formula di luhn in pratica e'
sia $ ~(x_i) $, sequenza di n numeri naturali e $ $m=\lfloor\frac{n}{2}\rfloor $
se n pari
$ $L=\sum_{k=1}^{m}[2x_{2k}\!\!\!\!\mod{9}]+\sum_{k=1}^{m}x_{2k-1} $
se n dispari
$ $L=\sum_{k=1}^{m}[2x_{2k}\!\!\!\!\mod{9}]+\sum_{k=1}^{m+1}x_{2k-1} $

(perdonate la notazione, ma non ricordo quella corretta)
$ ~L\equiv 0 \mod{10} $ indica la validita'

cambiando una cifra per avere di nuovo un valore valido devo variare la sua aggiunta alla somma di 10 e non e' possibile

Re: Formula di Luhn

Inviato: 15 giu 2009, 00:11
da julio14
Enrico Leon ha scritto:a) Se parto da un codice valido e modifico esattamente una cifra, posso ottenere un altro codice valido?

b) La stessa cosa se scambio tra loro due cifre adiacenti.
a) visto che la trasformazione è iniettiva, è un po' impossibile
b) 09 - 90, ma è l'unica, che la differenza tra ogni cifra e la sua permutazione è diversa per ogni cifra (0 e 9 esclusi: c'è due volte la differenza 0, e nessuna volta la 5)