Implementacja algorytmu Luhna

Próbuję wdrożyć proste sprawdzanie poprawności numerów kart kredytowych. Czytałem o algorytmie Luhna na Wikipedii:

Licząc od cyfry kontrolnej, która jest skrajnie prawostronna, i przesuwając się w lewo, należy podwoić wartość co drugą cyfrę. Sumuj cyfry produktów (np. 10: 1 + 0 = 1, 14: 1 + 4 = 5) wraz z niewypowiedzianymi cyframi z oryginalnego numeru.Jeżeli całkowity moduł 10 jest równy 0 (jeśli suma kończy się na zero), liczba jest ważna zgodnie ze wzorem Luhna; w przeciwnym razie jest niepoprawny.

W Wikipedii opis algorytmu Luhna jest bardzo łatwy do zrozumienia. Widziałem jednak także inne implementacje algorytmu Luhnaon Rosetta Code igdzie indzie.

Te implementacje działają bardzo dobrze, ale nie jestem pewien, dlaczego mogą korzystać z tablicy do wykonywania pracy. Tablica, której używają, wydaje się nie mieć związku z algorytmem Luhna i nie widzę, jak osiągają kroki opisane na Wikipedii.

Dlaczego używają tablic? Jakie jest ich znaczenie i jak wykorzystuje się je do implementacji algorytmu opisanego przez Wikipedię?

questionAnswers(1)

yourAnswerToTheQuestion