martes, 3 de marzo de 2015

ÁLGEBRA ABSTRACTA

ARITMÉTICA MODULAR : algoritmo de Luhn o fórmula de Luhn, también conocida como "algoritmo de módulo 10", es una fórmula de suma de verificación, utilizada para validar una diversidad de números de identificación; como números de tarjetas de créditonúmeros IMEI, etc.- ................:http://es.wikipedia.org/w/index.php?title=Especial:Libro&bookcmd=download&collection_id=9b3061b25608614556e5c1e4c068b5dd5d830556&writer=rdf2latex&return_to=Algoritmo+de+Luhn



 




El algoritmo de Luhn fue desarrollado por el científico computacional Alemán; Hans Peter Luhn en 1954. Calcula fórmulas de sumas de verificación simples utilizadas para validar números de identificación tales como números de tarjeta de crédito. El algoritmo fue diseñado para proteger en contra de errores accidentales, tales como la escritura incorrecta de un dígito. Detecta cualquier error de un solo dígito y también cais todas las transposiciones de dígitos adyacentes. Pero, no detecta transposiciones de las secuencias de dos dígitos desde 09 a 90 (o vice-versa)

La calculadora a continuación procesa la suma de verificación de Luhn para la secuencia de dígitos ingresada. La secuencia se considera válida si la suma de verificación con mod 10 es igual a cero. También encuentra el próximo dígito de revisión para ser agregado al final de la secuencia original para formar un número de validación de acuerdo al algoritmo de Luhn.
La fórmula es muy simple: Para calcular la suma de verificación de Luhn debes sumar todos los dígitos impares (calculado de derecha a izquierda, de tal forma que el último dígito se considera N1) y sumar todos los números pares multiplicados por 2, si el producto de la multiplicación es mayor a 9 se debe restar 9. Si el último dígito del checksum es cero, toda la secuencia es válida.
Para producir un dígito de validación podemos simplemente agregar "0" a la secuencia original y calcular la suma de verificación de Luhn otra vez. Si el último dígito de la suma de verificación obtenido es cero entonces el dígito de validación también es cero, si no, el dígito de validación se puede obtener restando el último dígito de la suma de verificación de 10.
El algoritmo consiste en ir sumando los dígitos (siempre a excepción del último), pero con una particularidad: los dígitos que ocupen una posición impar se multiplican por dos, y se suman individualmente los dígitos del resultado. Alternativamente, también se puede restar 9 si el resultado de multiplicar un número impar es mayor o igual a 10, que da el mismo resultado.

Cuando se han recorrido todos los dígitos, sumando directamente los de las posiciones pares y con la particularidad descrita arriba los de las posiciones impares habremos obtenido una suma s. El dígito de control se obtiene mediante la operación 10-(s mod 10), siendo el operador mod el resto de la división entera. Si el resultado es 10 se entenderá que el dígito de control es 0.

Por ejemplo, los números de las tarjetas de crédito tipo Visa o Master Card se componen de 16 dígitos, que a menudo se escriben en 4 grupos de 4 dígitos, separados por espacios o guiones, de la forma siguiente:

ABCD-EFGH-IJKL-MNOP


El primer dígito (el que ocupa la posición "A") debe ser un "4" para las tarjetas Visa, y un "5" para las Master Card.

El último dígito (el que ocupa la posición "P") es un dígito de control, que se obtiene de los 15 anteriores, y que sirve para verificar que no han habido errores al transcribir el número.



En matemática, la aritmética modular es un sistema aritmético para clases de equivalencia de números enteros llamadas clases de congruencia. La aritmética modular fue introducida en 1801 por Carl Friedrich Gauss en su libro Disquisitiones Arithmeticae .- ..................................:http://es.wikipedia.org/w/index.php?title=Especial:Libro&bookcmd=download&collection_id=52af212cc45ebf3b13099c5632ad1e1c22f0a463&writer=rdf2latex&return_to=Aritm%C3%A9tica+modular





Una introducción a la Matemática Modular

Cuando dividimos dos enteros tenemos una ecuación que se ve de la siguiente forma:
BA=Q remainder R
A is the dividend
B is the divisor
Q is the quotient
R is the remainder
Sometimes, we are only interested in what the remainder is when we divide A by B.
For these cases there is an operator called the modulo operator (abbreviated as mod).
Using the same ABQ, and R as above, we would have: A mod B=R
We would say this as A modulo B is congruent to R. Where B is referred to as themodulus.
Por ejemplo:
13513 mod 5==2 remainder 33

Visualiza el módulo con relojes

Observe what happens when we increment numbers by one and then divide them by 3.
03132333435363=======0 remainder 00 remainder 10 remainder 21 remainder 01 remainder 11 remainder 22 remainder 0
The remainders start at 0 and increases by 1 each time, until the number reaches one less than the number we are dividing by. After that, the sequence repeats.
By noticing this, we can visualize the modulo operator by using circles.
We write 0 at the top of a circle and continuing clockwise writing integers 1, 2, ... up to one less than the modulus.
For example, a clock with the 12 replaced by a 0 would be the circle for a modulus of 12.
To find the result of A mod B we can follow these steps:
  1. Construct this clock for size B
  2. Start at 0 and move around the clock A steps
  3. Wherever we land is our solution.
(If the number is positive we step clockwise, if it's negative we step counter-clockwise.)

Ejemplos

8 mod 4=?

With a modulus of 4 we make a clock with numbers 0, 1, 2, 3.
We start at 0 and go through 8 numbers in a clockwise sequence 1, 2, 3, 0, 1, 2, 3, 0.
We ended up at so 8 mod 4=0.

7 mod 2=?

With a modulus of 2 we make a clock with numbers 0, 1.
We start at 0 and go through 7 numbers in a clockwise sequence 1, 0, 1, 0, 1, 0, 1.
We ended up at 1 so 7 mod 2=1.

5 mod 3=?

With a modulus of 3 we we make a clock with numbers 0, 1, 2.
We start at 0 and go through 5 numbers in counter-clockwise sequence (5 is negative) 2, 1, 0, 2, 1.
We ended up at 1 so 5 mod 3=1.

Conclusión

If we have A mod B and we increase A by a multiple of B, we will end up in the same spot, i.e.
A mod B=(A+KB) mod B for any integer K.
Por ejemplo:
3 mod 10=313 mod 10=323 mod 10=333 mod 10=3

Notas al lector

mod en lenguajes de programación y calculadoras

Many programming languages, and calculators, have a mod operator, typically represented with the % symbol. If you calculate the result of a negative number, some languages will give you a negative result.
e.g.
-5 % 3 = -2.In a future article we will explain, why this happens, and what it means.

Modulos Congruentes

Si ves una expresión como:
AB (mod C)
This says that A is congruent to B modulo C. It is similar to the expressions we used here, but not quite the same.
In the next article we will explain, what it means, and how it is related to the expressions above.

No hay comentarios:

Publicar un comentario