Algorytm Luhna: Różnice pomiędzy wersjami

[wersja przejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
dodana →‎Implementacja: funkcji wyznaczającej cyfrę kontrolną w VBA
m dodatkowa niewykrywalność
Linia 1:
'''Algorytm Luhna''' – [[algorytm]] służący do sprawdzania poprawności wpisania [[numer|numeru]]. Jest on używany m.in. do [[Walidacja (technika)|walidacji]] numerów [[karta kredytowa|kart kredytowych]], [[ciąg (matematyka)|ciągów liczbowych]], itd. Nazwa algorytmu pochodzi od nazwiska [[Hans Peter Luhn|Hansa Petera Luhna]] (1896–1964), niemieckiego naukowca pracującego w [[IBM]], który opatentował mechaniczne urządzenie do sprawdzania poprawności numerów z cyfrą kontrolną.
 
Na końcu liczby doklejana jest [[suma kontrolna|cyfra kontrolna]] pozwalająca sprawdzić, czy poprzedzający ją ciąg cyfr jest wpisany poprawnie. Algorytm umożliwia wykrycie pomyłki pojedynczej cyfry lub większości zamian kolejności sąsiednich cyfr. Główną słabością jest niewykrywanie zamiany sekwencji 90 na 09 i odwrotnie. Algorytm nie wykryje także zamian par cyfr (''22'' ↔ ''55'', ''33'' ↔ ''66'' oraz ''44'' ↔ ''77''). Z zasady mnożenia przez 2 co drugiej cyfry wynika, że algorytm nie wykryje zamiany cyfr na niesąsiednich pozycjach, np. 1104942 i 1104249.
 
== Dane podstawowe ==