Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ir a la navegaci�nIr a la b�squeda
El algoritmo de Euclides es un m�todo antiguo y eficiente para calcular el m�ximo
com�n divisor (MCD). Fue originalmente descrito por Euclides en su obra Elementos.
El algoritmo de Euclides extendido es una ligera modificaci�n que permite adem�s
expresar al m�ximo com�n divisor como una combinaci�n lineal. Este algoritmo tiene
aplicaciones en diversas �reas como �lgebra, teor�a de n�meros y ciencias de la
computaci�n, entre otras. Con unas ligeras modificaciones suele ser utilizado en
computadoras electr�nicas debido a su gran eficiencia.
�ndice
1 Algoritmo original de Euclides
2 Algoritmo de Euclides tradicional
2.1 Generalizaci�n
2.2 Descripci�n formal
3 Algoritmo de Euclides extendido
3.1 Fundamentos
3.2 Descripci�n formal
4 Aplicaciones
4.1 Simplificar fracciones
4.2 Fracciones continuas
4.3 Inversos m�dulo m
5 Complejidad del algoritmo
6 Implementaci�n en pseudoc�digo
7 V�ase tambi�n
8 Referencias
9 Bibliograf�a
10 Enlaces externos
Algoritmo original de Euclides
Para encontrar la m�xima medida com�n de dos n�meros que no sean primos entre s�.
Euclides VII-2.svg
Sean AB y CD los dos n�meros que no son primos uno al otro. Se necesita entonces
encontrar la m�xima medida com�n de AB y CD.
Por tanto, alg�n n�mero queda que medir� el n�mero que le precede. Y sea CD
midiendo BE dejando EA menor que s� mismo y sea EA midiendo DF dejando FC menor que
s� mismo y sea FC medida de AE. Entonces, como FC mide AE y AE mide DF, FC ser�
entonces medida de DF. Y tambi�n se mide a s� mismo. Por tanto tambi�n medir� todo
CD. Y CD mide a BE. Entonces CF mide a BE y tambi�n mide a EA. As� mide a todo BA y
tambi�n mide a CD. Esto es, CF mide tanto a AB y CD por lo que es una medida com�n
de AB y CD.
Afirmo que tambi�n es la mayor medida com�n posible porque si no lo fuera, entonces
un n�mero mayor que CF mide a los n�meros AB y CD, sea �ste G. Dado que G mide a CD
y CD mide a BE, G tambi�n mide a BE. Adem�s, mide a todo BA por lo que mide tambi�n
al residuo AE. Y AE mide a DF por lo que G tambi�n mide a DF. Mide tambi�n a todo
DC por lo que mide tambi�n al residuo CF, es decir el mayor mide al menor, lo cual
es imposible.
Por tanto, ning�n n�mero mayor a CF puede medir a los n�meros AB y CD. Entonces CF
es la mayor medida com�n de AB y CD, lo cual se quer�a demostrar.
Dados dos segmentos AB y CD (con AB>CD), restamos CD de AB tantas veces como sea
posible. Si no hay residuo, entonces CD es la m�xima medida com�n.
Si se obtiene un residuo EA, �ste es menor que CD y podemos repetir el proceso:
restamos EA tantas veces como sea posible de CD. Si al final no queda un residuo,
EA es la medida com�n. En caso contrario obtenemos un nuevo residuo FC menor a EA.
El proceso se repite hasta que en alg�n momento no se obtiene residuo. Entonces el
�ltimo residuo obtenido es la mayor medida com�n.
El hecho de que los segmentos son conmesurables es clave para asegurar que el
proceso termina tarde o temprano
Seg�n lo antes mencionado, para calcular el m�ximo com�n divisor de 2366 y 273 se
puede proseguir de la siguiente manera:
Generalizaci�n
En realidad el algoritmo de Euclides funciona no s�lo para los n�meros naturales,
sino para cualesquiera elementos en los que exista una "divisi�n con residuo". A
este tipo de divisiones se les llama divisiones euclidianas y a los conjuntos donde
se puede definir dicha divisi�n se les llama dominios eucl�deos. Por ejemplo, el
conjunto de los n�meros enteros y el de los polinomios con coeficientes racionales
son dominios eucl�deos porque podemos definir una divisi�n con residuo (v�ase
Divisi�n polinomial). De esta manera, se puede calcular el m�ximo com�n divisor de
dos n�meros enteros o de dos polinomios.
Por ejemplo, para calcular el m�ximo com�n divisor de los polinomios {\displaystyle
P(x)=x^{5}+2x^{3}+x} {\displaystyle P(x)=x^{5}+2x^{3}+x} y {\displaystyle
Q(x)=x^{4}-1} {\displaystyle Q(x)=x^{4}-1} el algoritmo de Euclides sugiere la
siguiente secuencia de operaciones:
Descripci�n formal
Se puede expresar este algoritmo de manera m�s formal usando pseudoc�digo. En este
caso la expresi�n " {\displaystyle x\;{\bmod {\;}}y} {\displaystyle x\;{\bmod
{\;}}y}" significa "el residuo de dividir {\displaystyle x} x entre {\displaystyle
y} y" (v�ase Aritm�tica modular).
Algoritmo 1 de Euclides
Entrada: Valores {\displaystyle a} a y {\displaystyle b} b pertenecientes a un
dominio eucl�deo
Fundamentos
Existen varias maneras de explicar el algoritmo de Euclides extendido, una de las
m�s comunes consiste en la siguiente:
{\displaystyle
{\begin{bmatrix}s_{i}&t_{i}\\s_{i+1}&t_{i+1}\end{bmatrix}}={\begin{bmatrix}0&1\\1&-
q_{i}\end{bmatrix}}\times {\begin{bmatrix}0&1\\1&-q_{i-1}\end{bmatrix}}\times
\cdots \times {\begin{bmatrix}0&1\\1&-q_{1}\end{bmatrix}}} {\displaystyle
{\begin{bmatrix}s_{i}&t_{i}\\s_{i+1}&t_{i+1}\end{bmatrix}}={\begin{bmatrix}0&1\\1&-
q_{i}\end{bmatrix}}\times {\begin{bmatrix}0&1\\1&-q_{i-1}\end{bmatrix}}\times
\cdots \times {\begin{bmatrix}0&1\\1&-q_{1}\end{bmatrix}}}
{\displaystyle {\begin{bmatrix}-1&9\\3&-26\end{bmatrix}}={\begin{bmatrix}0&1\\1&-
2\end{bmatrix}}\times {\begin{bmatrix}0&1\\1&-1\end{bmatrix}}\times
{\begin{bmatrix}0&1\\1&-8\end{bmatrix}}} {\displaystyle {\begin{bmatrix}-1&9\\3&-
26\end{bmatrix}}={\begin{bmatrix}0&1\\1&-2\end{bmatrix}}\times
{\begin{bmatrix}0&1\\1&-1\end{bmatrix}}\times {\begin{bmatrix}0&1\\1&-
8\end{bmatrix}}}
Descripci�n formal
Para expresar el algoritmo de Euclides extendido es conveniente notar la manera en
que se calculan los valores {\displaystyle s_{i}} {\displaystyle s_{i}} y
{\displaystyle t_{i}} {\displaystyle t_{i}} con la multiplicaci�n de matrices:
{\displaystyle
{\begin{bmatrix}s_{i}&t_{i}\\s_{i+1}&t_{i+1}\end{bmatrix}}={\begin{bmatrix}s_{i}&t_
{i}\\s_{i-1}-q_{i}s_{i}&t_{i-1}-q_{i}t_{i}\end{bmatrix}}={\begin{bmatrix}0&1\\1&-
q_{i}\end{bmatrix}}\times {\begin{bmatrix}s_{i-1}&t_{i-
1}\\s_{i}&t_{i}\end{bmatrix}}} {\displaystyle
{\begin{bmatrix}s_{i}&t_{i}\\s_{i+1}&t_{i+1}\end{bmatrix}}={\begin{bmatrix}s_{i}&t_
{i}\\s_{i-1}-q_{i}s_{i}&t_{i-1}-q_{i}t_{i}\end{bmatrix}}={\begin{bmatrix}0&1\\1&-
q_{i}\end{bmatrix}}\times {\begin{bmatrix}s_{i-1}&t_{i-
1}\\s_{i}&t_{i}\end{bmatrix}}}
Fracciones continuas
La sucesi�n de divisiones que se efect�an al seguir algoritmo de Euclides puede ser
utilizada para expresar una fracci�n cualquiera {\displaystyle \textstyle {\frac
{a}{b}}} {\displaystyle \textstyle {\frac {a}{b}}} como fracci�n continua. Esto se
debe a que si {\displaystyle a=bq+r} {\displaystyle a=bq+r} y {\displaystyle r\neq
0} {\displaystyle r\neq 0}, entonces
De manera m�s general, la fracci�n continua encontrada con este algoritmo siempre
es de la forma
Inversos m�dulo m
Art�culo principal: Inverso multiplicativo (aritm�tica modular)
Decimos que dos n�meros enteros son congruentes m�dulo {\displaystyle m} m (aunque
tambi�n se puede generalizar para cualquier otro dominio eucl�deo) si al dividirlos
entre {\displaystyle m} m obtenemos el mismo residuo (v�ase Congruencia). Por
ejemplo, 7 es congruente con 12 m�dulo 5 porque al dividir 7 entre 5 y 12 entre 5,
en ambos casos obtenemos el mismo residuo (que es 2). Cuando {\displaystyle a} a es
congruente con {\displaystyle b} b m�dulo {\displaystyle m} m se escribe
{\displaystyle a\equiv b{\pmod {m}}} {\displaystyle a\equiv b{\pmod {m}}}, en el
ejemplo anterior se tiene {\displaystyle 7\equiv 12{\pmod {5}}} {\displaystyle
7\equiv 12{\pmod {5}}}. Sup�ngase que se conocen los valores de {\displaystyle a}
a, {\displaystyle b} b y {\displaystyle m} m, pero que se desconoce el valor
{\displaystyle x} x en la siguiente congruencia:
Sin embargo, no basta con saber el n�mero de divisiones. Hay que recordar que el
algoritmo de Euclides funciona tanto para polinomios como para n�meros enteros, y
en general, cualquier dominio Eucl�deo. En cada caso, la complejidad del algoritmo
depende del n�mero de divisiones efectuadas y del costo de cada divisi�n. En el
caso de los polinomios, el n�mero de divisiones es {\displaystyle O(\log n)} O(\log
n) donde {\displaystyle n} n es el grado de los polinomios.
Implementaci�n en pseudoc�digo
En general, los algoritmos 1 y 2 no son muy apropiados para implementarse
directamente en un lenguaje de programaci�n, especialmente porque consumen mucha
memoria. Si no se necesitan los valores intermedios, y s�lo se desea calcular el
m�ximo com�n divisor de dos n�meros enteros, conviene usar estas variantes: