Teorema de Lamé

Teorema de Lamé é o resultado da análise da complexidade do algoritmo de Euclides, feita por Gabriel Lamé. Usando os números de Fibonacci, ele provou que quando se busca o máximo divisor comum de dois inteiros a e b, o algoritmo termina em no máximo 5k passos, onde k é o número de dígitos (decimais) de b.

Enunciado

O número de passos de divisão no algoritmo de Euclides com entradas u {\displaystyle u\,\!} e v {\displaystyle v\,\!} é limitado superiormente por 5 {\displaystyle 5\,\!} vezes a quantidade de dígitos decimais em m i n ( u , v ) {\displaystyle min(u,v)\,\!} .

Demonstração

Sejam u > v {\displaystyle u>v} entradas inteiras e positivas no algoritmo de Euclides. Então:

u = v q 1 + v 1 , 0 < v 1 < v {\displaystyle u=vq_{1}+v_{1},0<v_{1}<v}

v = v 1 q 2 + v 2 , 0 < v 2 < v 1 {\displaystyle v=v_{1}q_{2}+v_{2},0<v_{2}<v_{1}}

v 1 = v 2 q 3 + v 3 , 0 < v 3 < v 2 {\displaystyle v_{1}=v_{2}q_{3}+v_{3},0<v_{3}<v_{2}}

. . . {\displaystyle ...}

v n 2 = v n 1 q n + v n , 0 < v n < v n 1 {\displaystyle v_{n-2}=v_{n-1}q_{n}+v_{n},0<v_{n}<v_{n-1}}

v n 1 = v n q n + 1 {\displaystyle v_{n-1}=v_{n}q_{n+1}}

E considerando a sequência de Fibonacci ( 1 , 1 , 2 , 3 , 5 , 8 , 13 , . . . ) {\displaystyle (1,1,2,3,5,8,13,...)} dada pela lei de recorrência

F n = { 1 , se  n = 0 1 , se  n = 1 F n 1 + F n 2 , outros casos {\displaystyle F_{n}=\left\{{\begin{matrix}1,&{\mbox{se }}n=0\\1,&{\mbox{se }}n=1\\F_{n-1}+F_{n-2},&{\mbox{outros casos}}\end{matrix}}\right.} ,

temos que v n 1 {\displaystyle v_{n}\geq 1} e v n 1 > 2 {\displaystyle v_{n-1}>2} , isto é, v n F 1 = 1 {\displaystyle v_{n}\geq F_{1}=1} e v n 1 F 2 = 2 {\displaystyle v_{n-1}\geq F_{2}=2} . Então, de maneira geral, v n p F p + 1 {\displaystyle v_{n-p}\geq F_{p+1}} para p = 0 , 1 , 2 , 3 , . . . , n 1 {\displaystyle p=0,1,2,3,...,n-1} de modo que tomando v = v 0 {\displaystyle v=v_{0}} , v = v 1 q 2 + v 2 F n + 1 {\displaystyle v=v_{1}q_{2}+v_{2}\geq F_{n+1}} .

Considerando a proporção áurea ϕ = 1 + 5 2 {\displaystyle \phi ={\frac {1+{\sqrt {5}}}{2}}} observamos que

ϕ 2 = ϕ + 1 < 2 + 1 f 2 + f 1 = f 3 {\displaystyle \phi ^{2}=\phi +1<2+1\leq f_{2}+f_{1}=f_{3}}

ϕ 3 = ϕ 2 + ϕ < f 3 + 2 f 3 + f 2 = f 4 {\displaystyle \phi ^{3}=\phi ^{2}+\phi <f_{3}+2\leq f_{3}+f_{2}=f_{4}}

ϕ 4 = ϕ 3 + ϕ < f 4 + f 3 = f 5 {\displaystyle \phi ^{4}=\phi ^{3}+\phi <f_{4}+f_{3}=f_{5}}

{\displaystyle \vdots }

ϕ j < f j + 1 , j = 2 , 3 , 4 , . . . {\displaystyle \phi ^{j}<f_{j+1},\;\;j=2,3,4,...}

Como F n + 1 v {\displaystyle F_{n+1}\geq v} implica ϕ j < F j + 1 < v {\displaystyle \phi ^{j}<F_{j+1}<v} , segue que

log 10 ϕ n < log 10 v {\displaystyle \log _{10}{\phi ^{n}}<\log _{10}{v}}

de onde

n < log 10 v log 10 ϕ . {\displaystyle n<{\frac {\log _{10}^{v}}{\log _{10}^{\phi }}}.}

Além disso, utlizando uma calculadora ou outro método de aproximação, conclui-se que

1 log 10 ϕ < 5 {\displaystyle {\frac {1}{\log _{10}{\phi }}}<5}

e, portanto,

n < log 10 v log 10 ϕ < 5 × log 10 v {\displaystyle n<{\frac {\log _{10}v}{\log _{10}{\phi }}}<5\times \log _{10}{v}} .

Seja k {\displaystyle k} o número de dígitos de v {\displaystyle v} e a decomposição em potências de 10, temos que

v = d k 1 10 k 1 + d k 2 10 k 2 + . . . + d 1 10 + d 0 {\displaystyle v=d_{k-1}10^{k-1}+d_{k-2}10^{k-2}+...+d_{1}10+d_{0}}

de onde v < 10 k {\displaystyle v<10^{k}} implica log 10 v < log 10 10 k = k {\displaystyle \log _{10}v<\log _{10}{10^{k}}=k} . Portanto, n < 5 k n + 1 < 5 k {\displaystyle n<5k\implies n+1<5k} . Fica assim demonstrado o Teorema de Lamé.


Bibliografia

  • Eric Bach. Algorithmic Number Theory: Eficcient algorithms. Vol. 1. 1996. MIT Press 496 p. 1 ISBN 0262024055
  • João Bosco Pitombeira de Carvalho. Olhando mais de cima: Euclides, Fibonacci e Lamé. Revista do Professor de Matemática, São Paulo, n. 24, p.32-40, 2 sem. 1993.


  • Portal das tecnologias de informação