Sprawdzanie poprawności liczby
Algorytm Luhna – jeden z najczęściej wykorzystywanych algorytmów służących sprawdzania poprawności wpisania danej liczby. Jego autorem był Hans Peter Luhn, niemiecki naukowiec pracujący w jednym z najstarszych koncernów informatycznych (IBM).
Źródło:
- sprawdzania walidacji kart kredytowych
- numerów ubezpieczeń
Schemat działania algorytmu jest bardzo przyjemny.
Należy postępować jedynie według wymienionych kroków:
Źródło :
1. Określenie wagi cyfry:
liczba parzysta :1
liczba nieparzysta: 2
2. Każdą cyfrę z podanej liczby wymnażamy przez jej wagę(od prawej do lewej!)
Przy obliczaniu cyfry kontrolnej przyjmujemy, że ostatnia pozycja jest parzysta, a przy sprawdzaniu - nieparzysta.
Przy obliczaniu cyfry kontrolnej przyjmujemy, że ostatnia pozycja jest parzysta, a przy sprawdzaniu - nieparzysta.
3. Jeśli w wyniku mnożenia otrzymamy liczbę dwucyfrową, wtedy sumujemy w liczbę jednocyfrową.
4. Dodajemy wszystkie otrzymane liczby do siebie.
5. Wykonujemy operację mod 10 na otrzymanej sumie (pozostawiamy jedynie cyfrę jedności)
6. Gdy otrzymana cyfra nie równa się 0, odejmujemy ją od
10. Otrzymujemy cyfrę kontrolną, która jest "doklejana" na końcu liczby początkowej.
7. Sprawdzenie poprawności liczby odbywa się poprzez zastosowanie na
całej liczbie (łącznie z cyfrą kontrolną) kroków 1-5. Jeżeli liczba jest
poprawna otrzymamy w wyniku zero.
Źródło:
PRZYKŁAD
501246
501246
Wykonujemy mnożenie
przez odpowiednie wagi. Od lewej do prawej, pierwsza pozycja jest
nieparzysta. W nawiasie kwadratowym podano indeks pozycji.
Jeśli wynik jest dwucyfrowy, w takim przypadku wykonujemy sumę cyfr tej liczby.
Otrzymane (pogrubione) liczby dodajemy do siebie:
Wykonujemy operację sumy: mod 10.
Jeśli otrzymana liczba jest większa od 0 :
10 - wynik ( w tym przypadku : 7 ) ;
10-7 =3
Dopisujemy na końcu wynik z powyższego działania do początkowej liczby:
Sprawdzenie działania tego algorytmu polega na ponownym jego zastosowaniu.
Jeśli nie popełniliśmy żadnego błędu to wynik winien wynieść 0.
Dla pewności przeprowadzę go jeszcze raz:
Otrzymane (pogrubione) liczby dodajemy do siebie:
Wykonujemy operację sumy: mod 10.
Wynikiem jest 0 - poprawnie przeprowadzony algorytm.
Wykonała Magdalena Burak, V LO, IB