El Teorema de Lamé es un resultado de Gabriel Lamé, publicado en 1844, que trata sobre la complejidad del Algoritmo de Euclides.[1][2]​ Este teorema afirma que cuando se busca el máximo común divisor (MCD) de dos enteros a {\displaystyle a\,\!} y b {\displaystyle b\,\!} , con a > b {\displaystyle a>b\,\!} , el algoritmo de Euclides termina en a lo sumo 5 k {\displaystyle 5k\,\!} pasos (divisiones); donde k {\displaystyle k\,\!} es el número de dígitos de b {\displaystyle b\,\!} (expresado en base decimal).[3]​ La prueba del Teorema utiliza la sucesión de Fibonacci.[4]

Enunciado del Teorema

Supongamos que se aplica el algoritmo de Euclides con entradas enteras no negativas a {\displaystyle a\,\!} y b {\displaystyle b\,\!} . El número de pasos (divisiones) que requiere el algoritmo para finalizar, es menor o igual que 5 {\displaystyle 5} veces el número de dígitos decimales de min ( a , b ) {\displaystyle \min(a,b)\,\!} (la entrada de menor magnitud).

Ejemplo

Supongamos que se aplica el algoritmo de Euclides con entradas a = 1235 {\displaystyle a=1235\,\!} y b = 455 {\displaystyle b=455\,\!} . El teorema de Lamé afirma que el número de pasos (divisiones) que requiere el algoritmo para finalizar, es menor o igual que 5 {\displaystyle 5} veces el número de dígitos decimales de min ( 1235 , 455 ) = 455 {\displaystyle \min(1235,455)=455\,\!} . Es decir, la cantidad de pasos es menor o igual a 5 × 3 = 15 {\displaystyle 5\times 3=15} .

Podemos comparar esta cota con la cantidad exacta de pasos que requiere el algoritmo de Euclides en este ejemplo. Los pasos del algoritmo son los siguientes: 1235 = 2 × 455 325 , 455 = 1 × 325 130 , 325 = 2 × 130 65 , 130 = 2 × 65 0. {\displaystyle {\begin{array}{l}1235=2\times 455 325,\\455=1\times 325 130,\\325=2\times 130 65,\\130=2\times 65 0.\end{array}}} El algoritmo termina en 4 pasos (divisiones), que es menor a la cota de 15 pasos del Teorema de Lamé.

Prueba del Teorema

Sean a > b {\displaystyle a>b} dos números enteros positivos. Supongamos que aplicamos el algoritmo de Euclides a estos dos enteros, y que el algoritmo termina en n {\displaystyle n} pasos (divisiones enteras). Es decir: a = q 1 b r 2 , b = q 2 r 2 r 3 , r 2 = q 3 r 3 r 4 r 3 = q 4 r 4 r 5 r n 2 = q n 1 r n 1 r n r n 1 = q n r n 0. {\displaystyle {\begin{array}{l}a=q_{1}b r_{2},\\b=q_{2}r_{2} r_{3},\\r_{2}=q_{3}r_{3} r_{4}\\r_{3}=q_{4}r_{4} r_{5}\\\vdots \\r_{n-2}=q_{n-1}r_{n-1} r_{n}\\r_{n-1}=q_{n}r_{n} 0.\end{array}}}

De esta forma se obtienen dos sucesiones de números enteros positivos, que denotamos ( q 1 , , q n ) {\displaystyle (q_{1},\ldots ,q_{n})} y ( r 2 , , r n ) {\displaystyle (r_{2},\ldots ,r_{n})} . Si definimos r 0 = a , {\displaystyle r_{0}=a,} r 1 = b {\displaystyle r_{1}=b} y r n 1 = 0 {\displaystyle r_{n 1}=0} , se puede expresar cada paso del algoritmo de forma compacta mediante: r i 1 = q i r i r i 1 ,     i = 1 , , n . {\displaystyle r_{i-1}=q_{i}r_{i} r_{i 1},\ \forall \ i=1,\ldots ,n.}

Además, sabemos que la sucesión de los restos es estrictamente decreciente (por definición de resto). Es decir: a > b > r 2 > > r n > r n 1 = 0. {\displaystyle a>b>r_{2}>\cdots >r_{n}>r_{n 1}=0.}

Como ya fue dicho, el número n es el número de pasos del algoritmo de Euclides, ya que es el número de divisiones euclidianas que se realizan hasta obtener resto nulo r n 1 = 0 {\displaystyle r_{n 1}=0} .

Consideremos ahora la sucesión de Fibonacci. Esta sucesión se puede definir de forma recursiva mediante:

F 0 = 0 ,   F 1 = 1 ,   F n 1 = F n F n 1 ,     n 1. {\displaystyle F_{0}=0,\ F_{1}=1,\ F_{n 1}=F_{n} F_{n-1},\ \forall \ n\geq 1.}

Vamos a probar la siguiente relación entre la sucesión de Fibonacci y los restos del algoritmo de Euclides: r n i F i 2 ,     i = 0 , 1 , , n . {\displaystyle r_{n-i}\geq F_{i 2},\ \forall \ i=0,1,\ldots ,n.} La prueba será mediante el método de inducción fuerte en i {\displaystyle i} . El paso base consiste en probar que: r n F 2 = 1 {\displaystyle r_{n}\geq F_{2}=1} y r n 1 F 3 = 2 {\displaystyle r_{n-1}\geq F_{3}=2} .

Dado que r n {\displaystyle r_{n}} es un entero positivo, se cumple: r n 1 = F 2 {\displaystyle r_{n}\geq 1=F_{2}} . Por otro lado, dado que r n 1 = q n r n {\displaystyle r_{n-1}=q_{n}r_{n}} , para ver que r n 1 2 = F 3 {\displaystyle r_{n-1}\geq 2=F_{3}} , basta con probar que se cumple q n 2 {\displaystyle q_{n}\geq 2} . Para ver esto último, supongamos por absurdo que fuese q n = 0 {\displaystyle q_{n}=0} o q n = 1 {\displaystyle q_{n}=1} . En el primer caso se tendría: r n 1 = q n r n = 0 {\displaystyle r_{n-1}=q_{n}r_{n}=0} ; lo cual contradice la hipótesis de que el primer resto nulo es r n 1 {\displaystyle r_{n 1}} . Por otro lado, si fuese si fuese q n = 1 {\displaystyle q_{n}=1} , se tendría: r n 1 = q n r n = r n {\displaystyle r_{n-1}=q_{n}r_{n}=r_{n}} , lo cual a su vez implicaría: r n 2 = q n 1 r n 1 r n = q n 1 r n 1 r n 1 = r n 1 ( q n 1 1 ) {\displaystyle r_{n-2}=q_{n-1}r_{n-1} r_{n}=q_{n-1}r_{n-1} r_{n-1}=r_{n-1}(q_{n-1} 1)} . Nuevamente, esto contradice la hipótesis de que el primer resto nulo es r n 1 {\displaystyle r_{n 1}} . La hipótesis de inducción fuerte consiste en asumir que se cumple: r n k F k 2 ,     k < i . {\displaystyle r_{n-k}\geq F_{k 2},\ \forall \ k Usando esto, queremos probar que se cumple la propiedad para el índice i {\displaystyle i} : r n i F i 2 {\displaystyle r_{n-i}\geq F_{i 2}} . Para ver esto, escribimos:

r n i = q n i 1 r n i 1 r n i 2 r n i 1 r n i 2 = r n ( i 1 ) r n ( i 2 ) F i 1 F i = F i 2 . {\displaystyle {\begin{aligned}r_{n-i}&=q_{n-i 1}r_{n-i 1} r_{n-i 2}\\&\geq r_{n-i 1} r_{n-i 2}=r_{n-(i-1)} r_{n-(i-2)}\\&\geq F_{i 1} F_{i}=F_{i 2}.\end{aligned}}}

Notar que en la penúltima desigualdad utilizamos que los cocientes son siempre enteros no nulos: q s 1 ,     s {\displaystyle q_{s}\geq 1,\ \forall \ s} . Si esto no fuese cierto, tendríamos un resto nulo anterior a r n 1 {\displaystyle r_{n 1}} , lo cual contradice la hipótesis de que n es la cantidad de pasos del algoritmo de Euclides.

En particular, probamos que se cumple: b = r 1 = r n ( n 1 ) F n 1 . {\displaystyle b=r_{1}=r_{n-(n-1)}\geq F_{n 1}.}

Por otro lado, por propiedades de la sucesión de Fibonacci, sabemos que se cumple F k φ k 2 {\displaystyle F_{k}\geq \varphi ^{k-2}} , para cada entero k > 2 {\displaystyle k>2} ; dónde φ = 1 5 2 {\textstyle \varphi ={\frac {1 {\sqrt {5}}}{2}}} es la proporción áurea.

[Esta propiedad se puede probar mediante inducción fuerte, comenzando con el paso base: F 2 = φ 0 = 1 {\displaystyle F_{2}=\varphi ^{0}=1} , F 3 = 2 > φ {\displaystyle F_{3}=2>\varphi } . Usando que φ 2 = φ 1 {\displaystyle \varphi ^{2}=\varphi 1} , el paso inductivo es: F k 1 = F k F k 1 φ k 2 φ k 3 = φ k 3 ( 1 φ ) = φ k 1 . {\displaystyle F_{k 1}=F_{k} F_{k-1}\geq \varphi ^{k-2} \varphi ^{k-3}=\varphi ^{k-3}(1 \varphi )=\varphi ^{k-1}.} ]

Por lo tanto, juntando las últimas dos desigualdades: b F n 1 φ n 1 . {\displaystyle b\geq F_{n 1}\geq \varphi ^{n-1}.} Como los números son positivos, al aplicar logaritmo se mantiene el sentido de las desigualdades. Es decir:

log 10 ( b ) log 10 ( F n 1 ) ( n 1 ) log 10 ( φ ) {\displaystyle \log _{10}(b)\geq \log _{10}(F_{n 1})\geq (n-1)\log _{10}(\varphi )} . Como log 10 ( φ ) > 0 {\displaystyle \log _{10}(\varphi )>0} , podemos despejar y obtener: n 1 log 10 ( b ) log 10 ( φ ) {\displaystyle n-1\leq {\frac {\log _{10}(b)}{\log _{10}(\varphi )}}} . Usando que 1 log 10 ( φ ) 4.785 < 5 {\displaystyle {\frac {1}{\log _{10}(\varphi )}}\simeq 4.785<5} , se obtiene: n 1 log 10 ( b ) log 10 ( φ ) < 5 log 10 ( b ) {\displaystyle n-1\leq {\frac {\log _{10}(b)}{\log _{10}(\varphi )}}<5\log _{10}(b)} .

Para terminar, notar que si d {\displaystyle d} es la cantidad de dígitos decimales de b {\displaystyle b} , se cumple: b < 10 d {\displaystyle b<10^{d}} . Es decir: log 10 ( b ) < d log 10 ( 10 ) = d {\displaystyle \log _{10}(b) . Reemplazando esta cota, y despejando, se obtiene la cota buscada para la cantidad de pasos del algoritmo de Euclides: n 1 < 5 d n < 5 d 1 5 d {\displaystyle n-1<5d\Leftrightarrow n<5d 1\leq 5d} .

Como resultado secundario de esta prueba, se obtiene que los pares de números enteros ( a , b ) {\displaystyle (a,b)} que dan el número máximo de pasos del algoritmo de Euclides (para un tamaño fijo de b {\displaystyle b} ), son los pares de números de Fibonacci consecutivos.

Referencias


Bibliografía

  • Bach, Eric (1996). Teoría algorítmica de números . Jeffrey Outlaw Shallit. Cambridge, Massachusetts: MIT Press.ISBN 0-262-02405-5. OCLC 33164327
  • Carvalho, João Bosco Pitombeira de (1993). Olhando mais de cima : Euclides, Fibonacci y Lamé . Revista do Professor de Matemática, São Paulo, n. 24, pág. 32-40, 2 sem.

Teorema de Lamy PDF

Lame Theorem PDF Division (Mathematics) Mathematical Analysis

Lame's Theorem YouTube

Teorema de Lamy YouTube

CEPREUNI Teorema de Lamy