Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmos
Algoritmos
2 El manuscrito permanece en la Biblioteca de la Universidad de Cambridge y fue descubierto en el siglo XIX. Comenzaba as: Dixit Algoritmi:
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
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.
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.
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 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.
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.