Estamos rodeados de números, identificados con números, trabajamos con números y códigos, cuentas bancarias, tarjetas, DNI, seguridad social, números de teléfono, identificadores, códigos de barra, etc., aunque muchas veces no tenemos que tratar con ellos, simplemente se tratan de códigos; de hecho cuando compramos por internet, introducimos el número de tarjeta, pero cuando pagamos en un restaurante, pasamos la tarjeta y datafono se encargará de leer ese código para cobrarnos o cuando una cajera pasa un artículo por el lector y este lee el código de barras del artículo, busca en la base de datos y carga el precio en nuestra cuenta y como este mil acciones diarias, ¿pero que hemos hecho para evitar que cuando trabajamos con esos números no se cometan errores?
Pues para que no ocurran estos errores, ya se pensó a nivel binario cuando se empezaron a transmitir datos de un lado a otro yt para esto se creó el bit de paridad, de modo que en un número binario de 8 bit,s (11011110 que equivale al número 222 en decimal) al transmitirlo le incluiríamos un 1 o un 0 dependiendo si el número de unos es par o no, en este caso el número 11011110 tiene 6 unos (1) y por tanto añadiríamos un 1 al final quedando 110111101; si por casualidad se cometiera un error y se enviara 110101101 el número de unos que existen en los ocho primeros dígitos es impar, de modo que es imposible que al final haya un uno. Con esto, indicamos que existe un error y obligamos a solicitar de nuevo el byte erróneo. Contar unos, está bien, ¿pero que ocurre cuando los números se hace más grandes?, pues que debemos contar con otras herramientas matemáticas que nos permitan evitar estos errores. Visto esto, vamos a ver en que ámbitos de nuestro vida diaria existe este control.
Una de las herramientas se la debemos a Carl Friedrich Gauss y a su aritmética modular, los números congruentes. Veamos.
Un número a es congruente a b módulo de c si ambos números al dividirlos por c, obtenemos el mismo resto y lo vemos con un ejemplo.
33 es congruente con 21 módulo de 12, que se escribe 33≡21(mod12) si al dividir 33 entre 12 nos da de resto 9 y lo mismo ocurre al dividir 33 entre 12 que da de resto 9. Este tipo de aritmética es utilizada para calcular cálculos con números muy grandes, pero también la usamos para esto, para añadir dígitos de control a nuestros números cotidianos. También podemos decir que 33 MOD 12 =9 y 21 MOD12=9.
33=12×2+9 y 21=12×1+9
NIF
El NIF tiene 8 dígitos numéricos y una letra al final, pues esta letra, no es otra cosa que un dígito de control del DNI que evita que cometamos errores o acceder a una base de datos de 44 millones de registros de una forma rápida realizando 23 grupos de registros entre otras cosas. Primera pista, 23 grupos.
Si dividimos nuestro DNI (solo números claro) entre 23, obtenemos un resto lógicamente menor que 23, este resto corresponde a una sola letra del abecedario y esa letra es la que le corresponde al NIF. Cada número desde el 0 hasta el 22 que pueden corresponder como restos, equivalen a las siguientes letras:
0⇒T, 1⇒R, 2⇒W, 3⇒A, 4⇒G, 5⇒M, 6⇒Y, 7⇒F, 8⇒P, 9⇒D, 10⇒X, 11⇒B, 12⇒N, 13⇒J, 14⇒Z, 15⇒S, 16⇒Q, 17⇒V, 18⇒H, 18⇒L, 20⇒C, 21⇒K, 22⇒E
Ejemplo.
22111333 ÷23=961362 x 23 + 7, por tanto el resto es 7 y nuestro DNI le corresponde la letra F siendo el NIF 22111333F.
Cuenta bancaria
Una cuenta bancaria tiene la siguiente estructura (porque la tiene).
- 4 primeros dígitos indican el código de la entidad y dentro de estos cuatro, el primero o los dos segundos indican el tipo de entidad, 0 o 1 es un banco, 2 es una caja de ahorros y alguno más.
- Los siguientes 4 dígitos indican el código de la sucursal u oficina.
- Los dos siguiente son el dígito de control que vamos a calcular
- Los 10 últimos dígitos identifican la cuenta bancaria
Bien, pues los dígitos de control nos van a permitir que si existiera un error en la emisión o recepción, hablada, escrita, telemática, etc. del número de cuenta, nos indique si esta es correcta. Con un ejemplo lo vemos con una cuenta ficticia 1234 5678 XY 9876543219
- Cogemos las 4 cifras de la entidad. Multiplicamos la primera por 4, la segunda por 8, la tercera por 5 y la cuarta por 10 y sumamos todos los productos. 1x4+2x8+3x5+4x10=75
- Cogemos las 4 cifras de la sucursal. Multiplicamos la primera por 9, la segunda por 7, la tercera por 3 y la cuarta por 6 y sumamos todos los productos. 5x9+6x7+7x3+8x6=156.
- Sumamos estas dos cantidades y obtenemos el resto de 11. 75 + 156=231. 231=21×11+0. El resto es 0.
- Por último multiplicamos por 1, 2, 4, 8, 5, 10, 9, 7, 3 y 6 cada una de las cifras del número de cuenta respectivamente y las sumamos. 9x1+8x2+7x4+6x8+5x5+4x10+3x9+2x7+3x1+9x6=264
- Obtenemos el resto de dividir por 11. 264=24×11+0
- El resultado final de la cuenta bancaria sería 1234 5678 00 9876543219 donde el primero y el segundo resto son el dígito de control.
Los números por los que se multiplican las cifras, no están escogidos aleatoriamente, sino que son los restos de dividir entre 11 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 y 210.
IBAN
El IBAN es un código basado en la cuenta bancaria, pero con el fin de unificar a nivel internacional las transacciones entre bancos de la Unión Europea. Para generar el IBAN se añaden 4 dígitos a la cuenta bancaria estándar de los que corresponden los dos primeros al país y los dos segundos como dígitos de control. ¿Cómo se genera?
Si somos de España, nos corresponde inicialmente ES y escribimos ES00 al final de los 20 dígitos de la cuenta bancaria; sustituimos la E por 14 y la S por 28 y nos quedaría del siguiente modo:
1234 5678 00 9876543219 ES00⇒ 12345678009876543219142800
al número resultante, le calculamos el módulo o resto de dividir por 97
12345678009876543219142800 MOD 97 = 90
ahora restamos a 98 el resultado, 98-90=08 y este es el dígito de control quedando el IBAN como
ES08 1234 5678 00 9876543219
en el caso que el resultado sea de una sola cifra, añadimos un 0 a su izquierda.
Pues aún hay más como el número de la seguridad social, los códigos de barras, el ISBN o las tarjetas de crédito los cuales veremos en el próximo post de Arithmos.