Inicio · Parte 04 — Matemática discreta para computación
F(n) = F(n−1) + F(n−2), F(0)=0, F(1)=1
Binet: F(n) = (φⁿ − (−1/φ)ⁿ)/√5, φ = (1+√5)/2
Una recurrencia es una definición autorreferente con casos base. Fibonacci es el ejemplo canónico, y sirve para ilustrar la diferencia más importante del análisis de algoritmos: la implementación recursiva ingenua recalcula los mismos valores una y otra vez y tarda O(φⁿ); la iterativa —o la memoizada— tarda O(n).
La diferencia no es de constante: para n = 50, la ingenua hace del orden de 10¹⁰ llamadas y la iterativa 50 pasos. Es la demostración más clara de que la complejidad asintótica no es una abstracción académica.
Fibonacci tiene además una fórmula cerrada, la de Binet, que involucra la razón áurea φ. Que una recurrencia de enteros se exprese con irracionales es notable, y su deducción —resolver la ecuación característica x² = x + 1— es el método general para recurrencias lineales homogéneas, análogo al de las ecuaciones diferenciales lineales de la parte 11.
Una precaución numérica: la fórmula de Binet en punto flotante deja de dar el entero exacto para n grande, porque φⁿ crece y la precisión relativa se agota. Para n = 71 el redondeo ya falla. Es un buen recordatorio de que una fórmula cerrada no siempre es preferible a una iteración.
Fibonacci por tres caminos.
F(30):
iterativo: 832040 30 pasos
Binet: 832040 1 evaluación
coinciden ✓
recursivo ingenuo: 2 692 537 llamadas
coste O(φⁿ) ≈ O(1.618ⁿ)
Razón entre consecutivos:
F(31)/F(30) = 1.6180339...
φ = 1.6180339... ✓ converge
Límite de Binet en float64: falla a partir de n ≈ 71
Recurrencia lineal: iterativo, memoizado y forma cerrada.
python classes/part-04-matematica-discreta-para-computacion/092-recurrencias/lab.py
compmath run 092
recurrenciaF(30)_iterativoF(30)_binetcoincidencoste_recursivo_ingenuocoste_iterativorazon_asintoticarazon_aurea{
"recurrencia": "F(n) = F(n-1) + F(n-2)",
"F(30)_iterativo": 832040,
"F(30)_binet": 832040,
"coinciden": true,
"coste_recursivo_ingenuo": "O(φ^n)",
"coste_iterativo": "O(n)"
}
Análisis de algoritmos divide y vencerás, programación dinámica, modelos autorregresivos y recurrencias en RNN (clase 313).
Los grafos de cómputo, la búsqueda en árbol y las GNN son estructuras discretas; el conteo sostiene la probabilidad que después usa todo modelo generativo.
9788131708415 verificado en International ISBN Agency (2026-08-19).9780262046305 verificado en International ISBN Agency (2026-08-19).