Algoritmo de Euclides

5
Algoritmo de Euclides alculo del mcd(a, b) (supondremos b> 0): P1 Leer a y b P2 r = resto de dividir a entre b P3 si r = 0 entonces mcd(a, b)= b FIN P4 si no, entonces a = b, b = r P5 ir al Paso 2 ¿Se termina siempre? En cada divisi´ on obtenemos un resto r N ∪{0} que es estrictamente menor que el anterior existir´ a un momento en el que r = 0. Complejidad: O(log(n)), siendo n = max(a, b).

Transcript of Algoritmo de Euclides

  • Algoritmo de Euclides

    Calculo del mcd(a, b) (supondremos b > 0):

    P1 Leer a y b

    P2 r = resto de dividir a entre b

    P3 si r = 0 entonces mcd(a, b) = b FIN

    P4 si no, entonces a = b, b = r

    P5 ir al Paso 2

    Se termina siempre?En cada division obtenemos un resto r N{0} que es estrictamentemenor que el anterior existira un momento en el que r = 0.

    Complejidad: O(log(n)), siendo n = max(a, b).

  • Algoritmo del mnimo resto

    Podemos acelerar la convergencia cuando en alguna division r > b2 :

    P1 Leer a y b

    P2 r = resto de dividir a entre b

    P3 si r = 0 entonces mcd(a, b) = b FIN

    P4 si r > b/2 entonces a = b, b = b rP5 si no, entonces a = b, b = r

    P6 ir al Paso 2

  • Ejemplos

    mcd(21, 13) =?

    Euclides:

    a b r

    21 13 813 8 58 5 35 3 23 2 12 1 0

    Mnimo Resto:

    a b r r

    21 13 8 513 5 3 25 2 12 1 0

  • Algoritmo Extendido de Euclides

    P1 Leer a y b

    P2 u = 1, v = 1, u = 0, v = 0, c = a, d = b

    P3 q = cociente de dividir c entre d,r = resto de dividir c entre d

    P4 si r = 0 entonces d = au+ bv FIN

    P5 si no, entonces c = d, d = rt = u, u = u, u = t qu,t = v, v = v, v = t qv

    P6 ir al Paso 3

  • Ejemplo

    Coeficientes de la identidad de Bezout para a = 1769 y b = 551

    u u v v c d q r

    1 0 0 1 1769 551 3 1160 1 1 -3 551 116 4 871 -4 -3 13 116 87 1 29-4 555 13 -16-16-16 87 292929 3 0

    mcd(1769, 551) = 29

    29 = 5 1769 16 551