Está en la página 1de 8

Algoritmos

Vicente Trigo Aranda


www.vicentetrigo.com

Si la cultura, en general, no est sobrevalorada en algoritmia.


nuestro pas, la ciencia y la tecnologa andan mucho
peor. Gente que se escandalizara al escuchar que El A lo largo de las siguientes pginas le mostrar algu-
Quijote lo escribi Caldern, sustituye el trmino nos algoritmos sencillos, interesantes y entretenidos,
algoritmo por logaritmo sin el menor pudor. De aunque, claro est, lo primero ser comentar la etimolo-
hecho, he ledo varios artculos cientficos en la prensa ga de esta palabra y su significado actual.
diaria, por lo general traducciones del ingls, donde
algorithm se ha transformado en logaritmo, convirtien-
do la frase en un galimatas sin sentido. DE DNDE PROCEDE LA PALABRA
Pero esta confusin no slo ocurre al traducir. Por ALGORITMO?
ejemplo, acabo de encontrar en una Web que lo impor-
tante no es el logaritmo, sino la idea, algo que no tiene En el siglo IX, el matemtico y gegrafo Mohammed
el menor sentido, ya que el autor (escritor con varias Ibn Musa Al-Khwarizmi (figura 1) escribi un pequeo
publicaciones, para ms seas) intentaba expresar que es libro donde explicaba los nuevos dgitos creados por los
ms importante saber qu hacer que el cmo hacerlo. hindes y cmo utilizarlos para realizar sencillas opera-
ciones. Se ha perdido la versin original de esta obra,
Como adems, con el auge de la informtica, cada Kitab al-Jama wal-Tafreeq bil Hisab al-Hindi (tam-
da va siendo ms habitual y cotidiano el trmino algo- bin llamada Aritmtica, en forma abreviada), pero se
ritmo, no viene mal dedicarle una cierta atencin; eso s, han conservado diversas traducciones al latn, realiza-
en plan divulgativo, huyendo de profundas cuestiones das todas ellas en Espaa, que entonces era el punto de
tcnicas. En otras palabras, la operacin ms complica- encuentro de las culturas rabe y latina.
da que aparecer en este artculo ser una divisin, y
vocablos como tiempo de ejecucin, problemas NP, La traduccin ms antigua que se conoce, parece ser1
optimizacin, grafos, etc., los dejo para especialistas en que fue escrita alrededor de 1120, bajo el ttulo Liber
1 Siempre que se hace referencia a nombres, ttulos o fechas de aquella poca histrica, estos datos deben tomarse con cierta cautela. Al no
existir la imprenta, la grafa variaba mucho de un copista a otro y al haberse perdido la documentacin que pudiese existir, que no era mucha,
las dataciones necesariamente son aproximadas.

Autores cientfico-tcnicos y acadmicos 43


1
Algoritmos
2 0
algorismi de numero indorum2, por el clrigo ingls Sin embargo, la Real Academia tiene otra opinin.
Robert de Chester o Robert de Ketton, a quien, adems, En su diccionario online (http://www.rae.es/) indica la
se debe la primera traduccin del Corn al latn. siguiente procedencia para la palabra algoritmo:
Quiz del lat. tardo algobarismus, y ste abrev.
del r. cls. Hisa-bu lguba-r, clculo mediante
cifras arbigas.
Qu puedo decirle! Es una muestra ms de que la
cultura cientfica en nuestro pas brilla por su ausencia
aunque uno esperaba ms rigor en la Real Academia4.
Tambin es verdad que no slo en los sillones de la
anterior institucin se idean etimologas originales. Lea,
por ejemplo, la que he encontrado en http://www.epsilo-
nes.com/paginas/t-etimologias.html:
Al-Khowarizmi hizo una exposicin tan comple-
ta del mtodo de numeracin hind que se
acab conociendo como el sistema de Al-
Khowarizmi, que dara lugar despus a los trmi-
nos guarismo para cada uno de los signos con los
que se representan los nmeros y algoritmo para
Figura 1. Sello ruso de 1983, en conmemoracin
de Al-Khwarizmi referirse al sistema completo, este ltimo por
influjo del griego arithms nmero y el castella-
Se conserva otra versin ms amplia de la no logaritmo.
Aritmtica de Al-Khwarizmi (la anterior est incompleta Ya le coment que eso de mezclar algoritmo y loga-
y, adems, contiene errores), que se atribuye al tambin ritmo no es algo inhabitual, por desgracia.
ingls Adelardo de Bath (1070-1142) y tena por ttulo
Alchorismi in artem astronomicam. Por su parte, el
espaol Juan de Sevilla3 sigui el mismo camino con su
Algorismi de practica arismetrice, aparecido a media- QU ES UN ALGORITMO?
dos del siglo XII.
La primera acepcin de algoritmo que ofrece la Real
A comienzos del siglo siguiente, fueron surgiendo Academia, en su diccionario online, es bastante aceptable.
otras obras que popularizaron los nuevos descubrimien-
tos matemticos y tuvieron mayor repercusin. As, Conjunto ordenado y finito de operaciones que
merecen recordarse, entre otros, Liber Abaci de permite hallar la solucin de un problema.
Fibonacci (1202), Algorismus vulgaris de Johannes Es decir, un algoritmo es la secuencia de pasos que
de Sacrobosco (1219) y Carmen de algorismo de debemos seguir para resolver un problema. Un ejem-
Alexandre de Villedieu (1225). plo? Seguramente el ms cotidiano es cualquier receta
Bueno, despus de leer los ttulos de los libros ante- de cocina, donde se nos explica qu operaciones tene-
riores, est claro de donde procede el trmino algorit- mos que realizar para obtener un apetitoso plato.
mo, verdad? En efecto, del nombre latinizado del gran Sin embargo, hay ocasiones en que nuestra activi-
matemtico rabe Al-Khwarizmi. dad culinaria no obtiene una recompensa sabrosa, ya

2 El manuscrito permanece en la Biblioteca de la Universidad de Cambridge y fue descubierto en el siglo XIX. Comenzaba as: Dixit Algoritmi:

laudes deo rectori nostro atque defensori dicamus dignas.


3 Fue un judo converso y se le conoce por muy variados nombres: Johannes Hispanensis, Johannes (David) Toletanus, Aven Daud, Avendar,

Juan de Luna, etc.


4 Curiosamente, en la misma Web puede encontrarse el discurso Ciencia y Lenguaje que ley D. Antonio Colino Lpez el 23 de enero de

1972, en su toma de posesin como acadmico. Ah s se afirma que la palabra algoritmo se deriva del nombre del matemtico rabe Al-
Khuwarizmi del siglo IX

44 Autores cientfico-tcnicos y acadmicos


1
2 0 Algoritmos

que, dejando de lado la poca habilidad que tenemos este algoritmo radica en encontrar el mayor nmero ente-
algunos con las sartenes y cacerolas, hay recetas tan ro que es divisor de los dos nmeros dados.
esquemticas y poco claras que incluso son ilegibles Adaptado al lenguaje actual, el algoritmo de
para delantales expertos. Euclides viene a decir que puede obtenerse el mximo
Las caractersticas bsicas que debe tener todo buen comn divisor de dos nmeros, a y b, en la siguiente
algoritmo, y, por tanto, cualquier receta de cocina, son forma:
las siguientes: 1. Calcular r, el resto de la divisin entre a y b
Precisin: No debe haber la menor ambigedad, 2. Si r = 0 el mcd (a, b) es b. En caso contrario, se
ni en las operaciones a realizar ni en su orden, ni hace a = b y b = r y se vuelve al paso 1.
omitir algo. Por ejemplo, en una receta dice: En Por ejemplo, para hallar el mcd (1230, 450) basta
otro cuenco, batir dos huevos con los dos azcares efectuar las siguientes divisiones (figura 2):
e incorporar la mantequilla fundida. Si la sigui-
semos al pie de la letra, el pastel saldra con mlti-
ples fragmentos de cscara de huevo y es que el
lenguaje humano es un tanto impreciso.
Definibilidad: Cada vez que se repita, en las mis-
mas condiciones, el resultado debe ser idntico. S,
ya s que con las recetas de cocina esto no siem-
pre sucede pero es que las condiciones no son
las mismas en todo momento.
Finitud: Evidentemente, para que el algoritmo
tenga alguna utilidad, debe acabar en un nmero
finito de pasos. De hecho, el tiempo que nos lleva
completar el algoritmo es casi siempre algo pri-
mordial. Por qu, si no, tuvimos que aprendernos
las tablas de multiplicar, si podemos averiguar el Figura 2. Divisiones sucesivas para hallar el mximo
valor de 9 x 6 sumando 6 veces 9? comn divisor
No obstante, existen algoritmos que, an siendo
vlidos en teora, no son efectivos en la prctica5. Por Consecuentemente, se tiene que el mayor divisor
ejemplo, hallar los divisores primos de un nmero pro- comn de 1230 y 450 es 30.
bando con los inferiores a l resulta prctico cuando se Enseguida se aprecia que este algoritmo es mucho
trabaja con nmeros pequeos, pero no cuando stos ms eficiente que el mtodo de descomposicin en fac-
constan de centenares de cifras. Un ordenador actual tores primos que se ensea en la escuela. Por una parte,
podra necesitar miles de millones de aos en encontrar es mucho ms rpido, salvo que trabajemos con nme-
sus divisores primos (en este hecho se basa el cifrado ros pequeos; por otro lado, no exige memorizar todos
actual de los modernos sistemas informticos). los factores primos, sino nicamente tres nmeros.
Debido a esto, el algoritmo de Euclides es el que se
implementa en los ordenadores para calcular el mximo
comn divisor.
ALGORITMO DE EUCLIDES
Uno de los algoritmos ms antiguos que se conocen, y
que todava se utiliza hoy en da, se debe a Euclides y per-
JUEGO DEL QUITPAL
mite calcular el mximo comn divisor de dos nmeros de Existen muchos sencillos juegos que admiten un
una manera cmoda y rpida6. Es decir, la finalidad de algoritmo ganador, de modo que, conociendo la ade-
5 Tambin hay problemas que no son resolubles mediante algoritmos. Reciben el nombre de problemas indecidibles y lo cierto es que son bas-

tante complejos.
6 Su primera versin conocida tiene unos 2.300 aos, pues Euclides lo incluy en sus Elementos.

Autores cientfico-tcnicos y acadmicos 45


1
Algoritmos
2 0
cuada estrategia, podemos vencer siempre. En este art- era el 25 de marzo7. Queda claro por qu las vacacio-
culo le voy a comentar dos de ellos, para que pase un nes de Semana Santa bailan tanto de un ao para otro?
rato entretenido y disfrute ganando.
Por ejemplo, en la figura 3 le muestro en qu fecha
Empecemos con el ms elemental, el Quitpal. cae el domingo de Pascua de los prximos aos. Como
Participan dos personas y se juega con 15 fichas. puede observar, las variaciones son notables en algunos
Alternativamente, cada persona coge 1, 2 o 3 fichas, a casos.
su eleccin, perdiendo quien toma la ltima ficha.
Haga una pausa en la lectura y practique un poco
con el Quitpal. Seguro que encuentra rpidamente el
algoritmo ganador.
En efecto! Quien tiene el primer turno, gana sin ms
que coger 2 fichas y, despus, cada vez que su rival
tome k fichas, coger 4 k.
Claro est que el juego es tan sencillo que, a pocas
partidas que juegue, su rival descubrir tambin el algo-
ritmo ganador. As que la nica forma de seguir practi-
cndolo ser complicar algo el Quitpal para que no sea
tan fcil descubrir el algoritmo ganador.
Por ejemplo, puede dejarle a su rival que decida
cuntas fichas hay inicialmente y cuntas se pueden
coger, como mximo, en cada turno. Qu deber
hacer, ahora, para ganar siempre?
Figura 3. Fechas de Pascua de los prximos aos
1. Slo tiene que decidir quin comienza. Si el mxi-
mo nmero de fichas a coger es m, djele a su
rival un nmero de fichas que sea mltiplo de (m Al ser la Pascua una festividad tan destacada, no es
+ 1) ms 1; si no es posible, indique a su rival que de extraar que fueran surgiendo diversos algoritmos
debe comenzar cogiendo en primer lugar. para permitir su clculo de una forma sencilla. As, en
1800 Gauss expuso un algoritmo que tena como lmite
2. Durante el juego, cada vez que su contrincante 2299; en 1876 Samuel Butcher public otro de dura-
tome k fichas, coja (m + 1) k. cin indefinida; etc.
Seguidamente le detallo otro algoritmo, ms sencillo
que los anteriores, dado a conocer por Thomas H.
OBeirne en su libro Puzzles and Paradoxes (1965).
DOMINGO DE PASCUA Eso s, slo es eficaz para aos comprendidos entre
La Pascua de Resurreccin es, junto con la Navidad, 1900 y 2099 pero considero que ya es suficiente, no
la fiesta ms importante del calendario cristiano. Ahora cree?
bien, inicialmente la Pascua era la celebracin que el 1. Calcular a = ao 1900
pueblo judo haca de su marcha de Egipto y, al regirse 2. Sea b el resto de dividir a entre 19
por un calendario lunar, la hicieron coincidir con la pri- 3. Hallar c, el cociente de la divisin entre (7b + 1)
mera luna llena de primavera. y 19
En el Concilio de Nicea (ao 325) la Iglesia estable- 4. Sea d el resto de dividir (11b + 4 c) entre 29
ci que la Pascua cristiana tendra lugar el domingo pos- 5. Hallar e, el cociente de la divisin entre a y 4
terior a la primera luna llena despus del equinoccio de 6. Sea f el resto de dividir (a + e + 31 d) entre 7
primavera, que se fij en el 21 de marzo, cuando antes 7. Calcular g = 25 d f

7 Sin embargo, el calendario juliano de aquella poca consideraba que el ao tena 365,25 das, cuando, en realidad, su duracin es 365,2422
das. As pues, no es de extraar que en el siglo XVI hubiese un desfase evidente entre el calendario real y el oficial. Por este motivo, en 1582,
el Papa Gregorio XII propuso la reforma del calendario, que dio origen al nuestro actual.

46 Autores cientfico-tcnicos y acadmicos


1
2 0 Algoritmos

8. Si g es positivo, la fecha es g de Abril; en caso 1. Escriba los dos nmeros que vaya a multiplicar,
contrario, es 31+g de Marzo. uno al lado del otro, algo separados.
As, en la figura 4, puede observar los diferentes 2. Del mayor calcule su doble y del otro la mitad
valores que se van obteniendo al aplicar el algoritmo entera (sin decimales). Escriba estos valores deba-
anterior, cuando se calcula el da de Pascua del ao jo de los anteriores.
2006. 3. Repita el paso 2, hasta que alcance el 1 al dividir.
4. Sume los nmeros de la columna donde anota los
dobles cuyo nmero correspondiente de la otra
columna sea impar. Dicha suma es el producto
buscado.
Veamos un ejemplo y comprobar que este algorit-
mo es muy sencillo de aplicar. Supongamos que nos
interesa multiplicar 54 por 23. Siguiendo los tres prime-
ros pasos del algoritmo anterior, se construye la tabla de
la figura 6.

Figura 4. La Pascua del 2006


De todas formas, si no tiene ganas de hacer clculos,
siempre puede acudir a Internet, donde encontrar la
fecha de Pascua con suma facilidad. Por ejemplo, la
figura 5 corresponde a una Web donde, una vez intro- Figura 6. Para multiplicar 54 por 23
ducido el nmero del ao, le mostrar en qu da cae su
domingo de Pascua (Easter day, en ingls). Ahora, slo tiene que sumar los nmeros de la
columna izquierda que tienen a su derecha un nmero
impar; es decir, 54, 108, 432 y 864. El resultado, 1242
(figura 7), es precisamente el valor de 54 x 23.

Figura 7. 54 por 23 es 1242

Si practica este algoritmo con nmeros pequeos


Figura 5. Su direccin es: apreciar que es muy cmodo y, sobre todo, fcil de
http://www.ely.anglican.org/cgi-bin/easter aprender, ya que no exige memorizar las tablas de mul-
tiplicar. Sin embargo, cuando los nmeros son mayores,
resulta un tanto lento y tedioso para los seres huma-
nos (entender esta puntualizacin al leer el siguiente
LA MULTIPLICACIN RUSA apartado).

El siguiente algoritmo, cuyo nombre hace alusin a


su amplia utilizacin en Rusia (hasta hace un siglo, ms
o menos), permite calcular el producto de dos nmeros
SISTEMA BINARIO
enteros siguiendo un procedimiento muy diferente del Las personas utilizamos el sistema decimal (base 10)
que aprendimos en la escuela. y, ocasionalmente, el sexagesimal (base 60) al calcular

Autores cientfico-tcnicos y acadmicos 47


1
Algoritmos
2 0
con ngulos y tiempo. En cambio, para el ordenador es Ahora que ya sabemos pasar de decimal a binario y
mucho ms eficaz trabajar en sistema binario (base 2), viceversa, vamos a analizar un par de detalles. En pri-
ya que puede identificar un dgito binario, 0 o 1, com- mer lugar, cmo se multiplica, en binario, un nmero
probando si pasa o no corriente por un determinado cir- por 2? Muy bien! Slo hay que aadir un cero a su
cuito. derecha y asunto concluido. Es decir, si 20 en binario
era 10100, 40 ser 101000.
Cuando queremos pasar un nmero del sistema deci-
mal al binario, podemos utilizar el siguiente algoritmo: Y, cmo se halla, en binario, el cociente entero de
dividir por 2? Pues tambin es muy sencillo; basta con
1. Dividir por 2 el nmero.
suprimir su cifra de la derecha. Por ejemplo, como 27 es
2. Dividir por 2 el cociente entero obtenido. 11011 en binario, su mitad entera (13) es 1101.
3. Repetir el paso anterior hasta llegar a 1. En otras palabras, como el ordenador trabaja en
4. Escribir, de izquierda a derecha, el ltimo cocien- binario le resulta sumamente rpido multiplicar por 2 y
te (1) y los restos que se han obtenido al dividir, dividir por 2. Adems, lo de sumar tampoco es compli-
en orden inverso. cado para l. Le suena todo esto?
Si no conoca este algoritmo, es posible que su enun- Claro que s! Es el proceso que se sigue en la multi-
ciado le parezca poco claro, as que nada mejor que un plicacin rusa. Por tanto, se trata de un algoritmo que le
ejemplo para acabarlo de entender. En la figura 8 se va de perlas al ordenador para multiplicar dos nmeros
muestra cmo pasar 26 a binario, donde se dividen por enteros. Quin nos iba a decir que sera tan til un anti-
2, sucesivamente, los nmeros 26, 13, 6 y 3. guo algoritmo que slo pareca curioso!

JUEGO DEL NIM


Vamos ahora con el segundo juego prometido, el
Nim, cuyo algoritmo ganador no es tan evidente como
el del Quitpal.
En el Nim tambin se utilizan fichas, si bien las reglas
varan algo. Se juega con varios montones de fichas,
Figura 8. 26 es 11010 en binario pudiendo haber un nmero cualquiera de fichas en
cada montn. Participan dos personas y, alternativa-
El algoritmo para convertir de binario a decimal mente, cada una coge las fichas que desee de cualquier
tambin es muy simple. De derecha a izquierda, el pri- montn, pero slo de uno. Ahora, gana quien coge la
mer dgito se multiplica por 1, el segundo por 2, el ter- ltima ficha.
cero por 2 al cuadrado, el cuarto por 2 al cubo, etc.,
Si lo desea, puede hacer un alto en la lectura y prac-
sumndose los productos obtenidos.
ticar un rato con la versin ms popular del Nim8, que
En la figura 9 puede ver un ejemplo que ilustra este se juega con cinco montones de fichas, que tienen, res-
algoritmo de cambio de base. pectivamente, 1, 2, 3, 4 y 5 fichas, que se colocan tal y
como se muestra en la figura 10.

Figura 9. El nmero binario 10100 es 20 Figura 10. Versin ms popular del Nim
8El nombre de Nim deriva del alemn nimm (coger). En la pelcula El ao pasado en Marienbad de Alain Resnas (1962), aparece varias
veces este juego y, por ello, el Nim tambin se conoce por Marienbad.

48 Autores cientfico-tcnicos y acadmicos


1
2 0 Algoritmos

Ha sido capaz de encontrar el algoritmo ganador? As, por ejemplo, si el nmero del DNI es 12345678,
Le felicito, porque yo tard bastante (y perd gran canti- al dividirlo por 23 se obtiene 536768 de cociente y 14
dad de partidas). Si la versin simple del Nim no resul- de resto. Con este ltimo nmero, vamos a la tabla ante-
ta nada sencilla, imagine cuando se generaliza. rior y averiguamos que la letra buscada es Z.
El algoritmo ganador exige trabajar en base 2. Escriba Otro cdigo de control con el que nos topamos en
en binario los nmeros que hay en cada montn, uno nuestro trabajo es el ISBN (International Standard
bajo otro, y deje siempre a su contrincante una posicin en Book Number). Los diez dgitos que identifican un libro
la que el nmero de 1 de cada columna sea par. estn repartidos en cuatro bloques: las dos primeras
Por ejemplo, supongamos que hay tres montones, cifras un identificador de grupo (a Espaa le correspon-
con 3, 5 y 8 fichas. Al escribir estos nmeros en binario, de el 84), las tres siguientes determinan la editorial, las
obtenemos: cuatro siguientes aluden al libro dentro de la editorial9 y,
finalmente, el ltimo dgito controla que los datos ante-
11 (3) riores se han introducido sin errores.
101 (5)
1000 (8) El algoritmo que permite obtener el cdigo de control,
a partir de los nueve primeros dgitos, es el siguiente:
Por tanto, si toma 2 fichas del montn de 8, su rival
se encontrar ante una posicin perdedora, ya que la 1. Se multiplica la primera cifra de la izquierda por
suma de cada columna es par. 10, la siguiente por 9 y as sucesivamente, hasta el
11 (3) noveno dgito, que se multiplica por 2.
101 (5) 2. Se suman los productos anteriores.
110 (6) 3. Se divide la suma anterior entre 11.
As pues, puede comprobar que, en la versin popu- 4. Si el resto es 0, es el cdigo de control; si es 1, se
lar del Nim (con 1-2-3-4-5 fichas), la jugada inicial escribe X. En los dems casos, el cdigo de con-
ganadora consiste en coger una ficha de los montones trol es 11 menos el resto.
1, 3 o 5. Por ejemplo, como puede comprobar en la figura 11,
los nueve primeros dgitos del ISBN de mi ltimo libro
son 844151645. Veamos qu resulta al seguir los pasos
CDIGOS DE CONTROL Resto
0
Letra
T
anteriores:
Para terminar con el artculo, 1 R 1. Se hacen las multiplicaciones 8x10, 4x9, 4x8, ,
voy a comentarle unos algoritmos 2 W 5x2
con los que convivimos diariamen- 3 A 2. Al sumar los productos obtenidos, se obtiene 236.
te y que casi nunca tenemos pre- 4 G
3. Al dividir 236 entre 11, el resto es 5.
sentes. Mediante ellos se generan 5 M
dgitos o letras que tienen por fina- 6 Y
4. El cdigo de control es 6 (11 5).
lidad detectar posibles errores de 7 F
tecleo o de lectura. 8 P
9 D
Comencemos con el ms habi- 10 X
tual: la letra del NIF. Como ya 11 B
sabe, para controlar que el nmero 12 N
del DNI se ha introducido correcta- 13 J
mente, se aade a su final una 14 Z
letra, conformando as el NIF. 15 S
El algoritmo para obtener la letra 16 Q Figura 11. ISBN y cdigo de barras
del NIF consiste en dividir el nme- 17 V
ro del DNI entre 23. Una vez obteni- 18 H El cdigo de barras EAN (Europe Article Number)
do el resto, la asignacin de letra se 19 L ms habitual es el EAN13, que consta de 13 dgitos, el
rige por la tabla siguiente: 20 C
21 K 9Esta agrupacin de dgitos es variable y depende de la cantidad
22 E de libros que prev producir la editorial o el grupo.

Autores cientfico-tcnicos y acadmicos 49


1
Algoritmos
2 0
ltimo de los cuales es un dgito de control. El algoritmo 2. Se suman los dgitos que ocupan posicin par
para calcularlo, a partir de los doce dgitos anteriores, es (excluyendo el dgito de control, claro est)
el siguiente: 3. Se suman los valores hallados en los dos pasos
1. Se suman los dgitos correspondientes a posicio- anteriores. Sea c la cifra de las unidades de esta
nes impares, comenzando por la izquierda. nueva suma.
2. Se suman los dgitos correspondientes a posicio- 4. Si c es 0, es el dgito de control. En los dems
nes pares y el resultado se multiplica por 3. casos, el dgito de control es 10 menos c.
3. Se suman los valores hallados en los dos pasos Por ejemplo, supongamos que los 15 primeros dgi-
anteriores y nos quedamos slo con la cifra c de tos de una tarjeta son 4000 0012 3456 789. Para calcu-
las unidades de la suma. lar el dgito de control, segn el algoritmo anterior, hace-
4. Si c es 0, es el dgito de control. En los dems mos lo siguiente:
casos, el dgito de control es 10 menos c. 1. Se suman los nmeros 8 (4x2), 0 (0x2), 0 (0x2),
Por ejemplo, en la figura 11 los doce primeros dgi- 2 (1x2), 6 (3x2), 1 (5x2=10 y 1+0=1), 5
tos son 978844151645. Al seguir los pasos anteriores, (7x2=14 y 1+4=5) y 9 (9x2=18 y 1+8=9). El
se tiene: resultado es 31.
1. Al calcular 9 + 8 + 4 + 1 + 1 + 4, resulta 27 2. Se suman los dgitos 0, 0, 0, 2, 4, 6 y 8. El resul-
tado es 20.
2. Al hallar 7 + 8 + 4 + 5 + 6 + 5, da 35. Al mul-
tiplicar 35 por 3, se obtiene 105. 3. La suma de 31 y 20 es 51. Por tanto c = 1.
3. La suma de 27 y 105 es 132. Por tanto c = 2. 4. El dgito de control es 9 (10 c).
4. El dgito de control es 8 (10 c) algo que ya Despus de haber visto tantos algoritmos para con-
sabamos por la figura 11. trolar errores, la pregunta que surge es evidente:
Realmente detectan los errores que se cometen? Como
Como puede imaginar, siempre que haya datos que no hay nada perfecto, la respuesta es depende.
se almacenan o se leen desde un ordenador, los dgitos
de control son imprescindibles para detectar errores; as, Los gazapos ms comunes al teclear consisten en
seguro que los encuentra en su pasaporte, en los che- escribir un dgito en lugar de otro (error simple) o inter-
ques, en los billetes de avin, etc. cambiar el orden de dos dgitos consecutivos (error de
transposicin) y, por ello, los algoritmos de control se
Lgicamente, no puedo comentarle todos los algorit- centran en ellos.
mos generadores (muchos los desconozco), porque el
artculo se alargara bastante. As que voy a terminar De hecho, todos los algoritmos de control analizados
explicndole cmo averiguar el dgito de control que lle- anteriormente detectan los errores simples. En cuanto a
van las tarjetas de crdito. los de transposicin, se detectan siempre en la letra del
NIF y en el ISBN; en las tarjetas de crdito la probabili-
Las tarjetas de crdito constan de 16 dgitos (al dad de deteccin es del 99%, pero en el cdigo de
menos las que hay en mi cartera), siendo el primero 4 barras slo es del 89%.
(Visa) o 5 (Mastercard) y el ltimo el cdigo de control.
Para hallar ste, se utiliza el siguiente algoritmo: En otras palabras, le recomiendo que repase la cuen-
ta del supermercado No, no se lo tome a risa. En una
1. Comenzando por la izquierda, se multiplican por ocasin que fui de compras a un hiper, adquir 36 bote-
dos las cifras que ocupan posicin impar. Si el llas de agua y no revis el ticket de compra hasta llegar
resultado de alguno de estos productos es mayor a casa. Entonces, comprob que me haban cobrado
que 9, se sustituye por la suma de sus dos cifras. 36 almohadas! Eso s, no tuve ningn problema para
Despus, se suman los nmeros obtenidos ante- recuperar mi dinero.
riormente.

50 Autores cientfico-tcnicos y acadmicos

También podría gustarte