Implementação do algoritmo Luhn

Estou tentando implementar uma validação simples de números de cartão de crédito. Eu li sobre o algoritmo Luhnem Wikipedia:

Contagem do dígito de verificação, que é o mais à direita, e movendo para a esquerda, dobra o valor de cada segundo dígit Soma dos dígitos dos produtos (por exemplo, 10: 1 + 0 = 1, 14: 1 + 4 = 5), juntamente com os dígitos inalterados do número original.Se o módulo total 10 for igual a 0 (se o total terminar em zero), o número é válido de acordo com a fórmula de Luhn; caso contrário, não é válido.

Na Wikipedia, a descrição do algoritmo de Luhn é muito fácil de entender. No entanto, também vi outras implementações do algoritmo Luhnem Rosetta Code eem outro luga.

Essas implementações funcionam muito bem, mas estou confuso sobre por que elas podem usar uma matriz para fazer o trabalho. A matriz que eles usam parece não ter relação com o algoritmo Luhn, e não consigo ver como eles alcançam as etapas descritas na Wikipedi

Por que eles estão usando matrizes? Qual é o significado deles e como eles são usados para implementar o algoritmo descrito pela Wikipedia?

questionAnswers(1)

yourAnswerToTheQuestion