Escolar Documentos
Profissional Documentos
Cultura Documentos
Paso Operacin
Significado
mcd(2366,273) =
mcd(273,182)
mcd(273,182) = mcd(182,91)
mcd(182,91) = mcd(91,0)
Paso Operacin
Significado
mcd(r0,r1) = mcd(r1,r2)
mcd(r1,r2) = mcd(r2,r3)
mcd(r2,r3) = mcd(r3,r4)
Paso Operacin
Significado
Algoritmo 1 de Euclides
Entrada: Valores a y b pertenecientes a un dominio eucldeo
Salida: Un mximo comn divisor de a y b
Mientras
haga lo siguiente:
El resultado es:
Vale la pena notar que este algoritmo no es eficiente ser implementado directamente en
una computadora, ya que requerira memorizar todos los valores de ri.
Algoritmo de Euclides extendido
El algoritmo de Euclides extendido permite, adems de encontrar un mximo comn
divisor de dos nmeros enteros a y b, expresarlo como la mnima combinacin lineal de
esos nmeros, es decir, encontrar nmeros enteros s y t tales que
. Esto se generaliza tambin hacia cualquier dominio
euclideano.
Fundamentos
Existen varias maneras de explicar el algoritmo de Euclides extendido, una de las ms
comunes consiste en la siguiente:
Usar el algoritmo tradicional de Euclides. En cada paso, en lugar de "a dividido entre b
es q y sobra r" se escribe la ecuacin
(vase algoritmo de la divisin).
Se despejan los residuos de cada ecuacin.
Se substituye el residuo de la ltima ecuacin en la penltima, y la penltima en la
antepenltima y as sucesivamente hasta llegar a la primera ecuacin, y en cada paso
expresar cada residuo como combinacin lineal.
Sin embargo, en aras de la comprensin y memorizacin de este algoritmo, es
conveniente conocer la siguiente caracterizacin. Para multiplicar dos matrices de
tamao
se usa la siguiente frmula (vse Producto de matrices):
(1)
Supngase que se utiliza el algoritmo de Euclides tradicional para calcular los valores qi
y ri que ah se describen. Por cada valor qi calculado se puede formar la matriz
. Usando la ecuacin (1) de manera repetida se puede calcular el
producto las primeras i matrices de este tipo:
, es decir,
entonces se tiene
, lo cual es la
solucin del problema. Esta propiedad no debera ser sorprendente, pues esta
multiplicacin de matrices equivale al mtodo antes descrito donde se substituye cada
ecuacin en la anterior. Es importante calcular
en ese
mismo orden. La matriz Q1 aparece en el extremo derecho y la matriz Qi en el izquierdo.
Regresando al primer ejemplo, la sucesin de cocientes es q1 = 8, q2 = 1 y q3 = 2.
Entonces se puede calcular
Utilizando el primer rengln de esta matriz se puede leer que 91 = 2366( 1) + 273(9),
es decir, se ha encontrado la manera de expresar al mximo comn divisor de 2366 y
273 como una combinacin lineal.
Descripcin formal
Para expresar el algoritmo de Euclides extendido es conveniente notar la manera en que
se calculan los valores si y ti con la multiplicacin de matrices:
Mientras
Divida
haga lo siguiente:
entre
y el residuo
El resultado es:
Implementacin en pseudocdigo
En general, los algoritmos 1 y 2 no son muy apropiados para implementarse
directamente en un lenguaje de programacin, especialmente porque consumen mucha
memoria. Si no se necesitan los valores intermedios, y slo se desea calcular el mximo
comn divisor de dos nmeros enteros, conviene usar estas variantes:
Algoritmo de Euclides tradicional implementado de manera recurrente
Funcin
Si
entonces:
El resultado es
En otro caso:
El resultado es
Algoritmo de Euclides tradicional implementado de manera iterativa
Funcin
Mientras
haga lo siguiente:
El resultado es
Algoritmo de Euclides extendido implementado de manera recurrente
Funcin
Si
:
entonces:
El resultado es
En otro caso:
El resultado es
Algoritmo de Euclides extendido implementado de manera iterativa
Funcin
Mientras
haga lo siguiente:
Divida entre para obtener un cociente y un residuo
El resultado es
Algoritmo de Euclides extendido implementado de manera iterativa con matrices
Funcin
Mientras
haga lo siguiente:
Divida entre para obtener un cociente y un residuo
El resultado es
Acerca de la notacin empleada: