Algoritmo Básico

Si tienes curiosidad por conocer explora nuestra web

El algoritmo de luhn en java

Post publicado por Admin , a las 8:46 , este tema tiene 0 comentarios

Uno de los algoritmos para validar números de identificación es el de luhn


Es conocido también como "algoritmo de módulo 10", es una fórmula de suma de verificación, se utiliza para validar una diversidad de números de identificación.

El algoritmo procede en tres pasos.

En el primer paso, cada segundo número, empezando por el segundo desde la derecha hacia la izquierda, se duplica. Si el resultado es mayor que 9, se forma la suma del resultado entre los dos dígitos (ej: 10 = 1 + 0 = 1, 14 = 1 + 4 =7)

En el segundo paso todos los números se suman.

Finalmente, en el último paso, el resultado se divide por 10. Si el resto es igual a 0, es la secuencia original de dígitos, el cual el cual fue revisado y es válido.

Ej:

Dígitos del número de cuenta           7   9     9    2     7    3    9    8     7    1    x
Duplicar cada siguiente                    7   18   9    4     7    6    9    16   7    2    x
Sumar los dígitos                            7   9     9    4     7    6    9     7    7    2   =67


Nota: La "x" que se encuentra en el numero de cuenta, es el numero de control, que determina si el numero de cuenta es valido.

Pero como podemos saber que numero es el valor "x"

El dígito de chequeo (x) podemos optenerlo de (67 * 9 mod 10). En términos sencillos:

Calcular la suma de los dígitos 67.
Multiplicar por 9 y el resultado es de 603.
Tomar el último dígito 3.
El resultado es el dígito de chequeo.

A continuacion el algortimo de luhn relizado en java:

public static boolean verificacionluhn(int[] digits){
  int sum = 0;
  int length = digits.length;
  for(int i = 0; i < length; i++) {
     // sacar los digitos en orden inverso
     int digit = digits[length - i - 1];
   
     // cada segundo número se multiplica por 2
     if(i % 2 == 1) {
       digit = digit * 2;
     }
     if(digit > 9){
       digit = digit - 9;
     }
     sum = sum + digit;
  }
  return sum % 10 == 0;
}
El algoritmo de luhn en java
El algoritmo de luhn en java - escrito por Admin , publicado en 8:46, categorizado como Matematicos . y tiene 0 comentarios
No comment Add a comment
Copyright © 2015 Algoritmo Básico Todos los derechos reservados.
Si te gusta nuestra web, no te olvides de compartir nuestros post.

Desarrollado por Algoritmo Básico con la tecnología Blogger.