Implementación del algoritmo de Luhn

Estoy tratando de implementar una validación simple de los números de tarjeta de crédito. Leí sobre el algoritmo de Luhnen Wikipedia:

Contar desde el dígito de control, que es el más a la derecha, y moverse hacia la izquierda, duplica el valor de cada segundo dígito.Suma los dígitos de los productos (por ejemplo, 10: 1 + 0 = 1, 14: 1 + 4 = 5) junto con los dígitos no duplicados del número original. Si el módulo total 10 es igual a 0 (si el total termina en cero), el número es válido de acuerdo con la fórmula de Luhn; de lo contrario no es válido.

En Wikipedia, la descripción del algoritmo de Luhn se entiende muy fácilmente. Sin embargo, también he visto otras implementaciones del algoritmo Luhnon Rosetta Code yen otra part.

Estas implementaciones funcionan muy bien, pero estoy confundido acerca de por qué pueden usar una matriz para hacer el trabajo. La matriz que usan parece no tener relación con el algoritmo de Luhn, y no puedo ver cómo logran los pasos descritos en Wikipedia.

¿Por qué están usando matrices? ¿Cuál es el significado de ellos y cómo se utilizan para implementar el algoritmo descrito por Wikipedia?

Respuestas a la pregunta(1)

Su respuesta a la pregunta