Page 37 - INTRODUCCIÓN AL ANÁLISIS DE ALGORITMOS
P. 37

INTRODUCCIÓN AL ANÁLISIS  DE ALGORITMOS


            Entonces, se debe satisfacer que

                                                  k a  = k a n-1  + k a .
                                                     n
                                                                  n-2
            Realizando una simplificación, se tiene:

                                                      a  = a + 1,
                                                        2
            de donde se despeja

                                                     a  – a -1 = 0,
                                                      2
            siendo esta una ecuación característica y una de sus raíces se conoce como:

                                            a = (1+√5) / 2 ~ 1,6180339887…

            o sea,

                                                 T(n) ~ 1,6180339887 .
                                                                     n
            En otras palabras,

                                                   T(n)       O(1,618 ).
                                                                  n
            En realidad, la secuencia de Fibonacci crece tan rápido como la potencia de dos: por ejemplo, F
                                                                                                         30
            rebasa el millón, y la secuencia F  tiene aproximadamente veintiún dígitos de largo. Para colocar la
                                           100
            complejidad en potencia de dos se realiza la siguiente trasformación:

                                                     1.618  = 2  x n
                                                           n
                                                Log (1.618)  = log (2) x n
                                                            n
                                               n Log (1.618) = x n log (2)

                                          x = n Log (1.618) / (n log (2)) = 0.694.




            En general, F ≈ 2 0.694n .
                         n
            Pero ¿cuál es el valor exacto de F  o de F ? Fibonacci nunca supo la respuesta. Para saberlo,
                                              100      200
            necesitamos un algoritmo para computar el n-ésimo número de Fibonacci.
            Una idea es utilizar la definición recursiva de F  El pseudocódigo se muestra enseguida:
                                                        n.
            Función fib(n){

            Si n = 0 retorna 0

            Si n = 1 retorna 1

            Retorna fib(n-1) + fib(n-2)

            }

                                                          31
   32   33   34   35   36   37   38   39   40   41   42