Fibonacci - andres726127/An-lisis-de-Algoritmos GitHub Wiki
package fibbonaccib1;
import java.util.Scanner;
public class FibbonacciB1 {
public static int fibonacciRecursivo(int n) {
if (n <= 1) {
return n;
}
return fibonacciRecursivo(n - 1) + fibonacciRecursivo(n - 2);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = 0;
System.out.print("Ingrese un número para encontrar el fibonacci: ");
while (!sc.hasNextInt()) {
System.err.println("Error: Se necesita un número entero!");
System.out.print("Intente de nuevo: ");
sc.next();
}
n = sc.nextInt();
for (int i = 0; i <= n; i++) {
System.out.print(fibonacciRecursivo(i) + " ");
}
}
}
2. Identificación de la Recurrencia
La función de Fibonacci se define mediante la siguiente relación de recurrencia:
$$ F(n) = \begin{cases} 0 & \text{si } n = 0 \ 1 & \text{si } n = 1 \ F(n-1) + F(n-2) & \text{si } n \geq 2 \end{cases} $$
Esta es una relación recursiva no lineal de segundo orden con condiciones iniciales. Se utiliza ampliamente en problemas de conteo y en el análisis de algoritmos recursivos.
3. Ecuación General (Fórmula Cerrada)
Para resolver la recurrencia, se utiliza la técnica de ecuaciones características.
La ecuación característica es:
$$ x^2 = x + 1 \Rightarrow x^2 - x - 1 = 0 $$
Las soluciones son:
$$ \phi = \frac{1 + \sqrt{5}}{2}, \quad \psi = \frac{1 - \sqrt{5}}{2} $$
La solución general de la sucesión es la fórmula de Binet:
$$ F(n) = \frac{\phi^n - \psi^n}{\sqrt{5}} $$
Esta expresión permite calcular directamente el término enésimo de la sucesión sin necesidad de recurrencia.
4. Demostración por Inducción
Paso base:
Para ( n = 0 ):
$$ F(0) = \frac{\phi^0 - \psi^0}{\sqrt{5}} = \frac{1 - 1}{\sqrt{5}} = 0 $$
Para ( n = 1 ):
$$ F(1) = \frac{\phi - \psi}{\sqrt{5}} = 1 $$
Coincide con la definición original de la sucesión.
Paso inductivo:
Supongamos que:
$$ F(k) = \frac{\phi^k - \psi^k}{\sqrt{5}}, \quad F(k-1) = \frac{\phi^{k-1} - \psi^{k-1}}{\sqrt{5}} $$
Queremos demostrar que:
$$ F(k+1) = F(k) + F(k-1) $$
Usando la propiedad de las potencias:
$$ \phi^{k+1} = \phi^k + \phi^{k-1}, \quad \psi^{k+1} = \psi^k + \psi^{k-1} $$
Sustituyendo en la fórmula:
$$ F(k+1) = \frac{\phi^{k+1} - \psi^{k+1}}{\sqrt{5}} = \frac{\phi^k + \phi^{k-1} - (\psi^k + \psi^{k-1})}{\sqrt{5}} = F(k) + F(k-1) $$
Por lo tanto, la fórmula queda demostrada por inducción matemática.