4. Nombre d’or¶
El nombre d’or és un número molt conegut que es pot definir a partir dels nombres de Fibonacci, els quals es defineixen com
Així, els primers nombres de Fibonacci són \(1, 1, 2, 3, 5, 8, 13, ...\)
El nombre d’or és el límit dels quocients de cada parella de nombres consecutius de Fibonacci, és a dir, el límit de la successió \(1/1, 2/1, 3/2, 5/3, 8/5, ..., f_{n+1}/f_{n}\) per \(n>0\).
Al fitxer aprox.py disposes de la funció quocient_fib(n) que, donat n, retorna l’enèssim nombre d’aquesta successió \(q_{n} = f_{n+1}/f_{n}\). Descarrega’t aquest fitxer, perquè l’hauràs de fer servir per a resoldre el problema.
Dissenya la funció següent i desa-la al mòdul nombres (fitxer
nombres.py).
- nombres.nombre_or(eps)¶
- Paràmetres:
eps (float) – nombre real positiu que representa una tolerància
- Tipus de retorn:
- Retorna:
parella formada per:
l’aproximació del nombre d’or \(q_n\) definida anteriorment tal que \(|q_n - q_{n-1}| < eps\), i
\(n\), el subíndex del terme \(q_n\) que compleix la condició del punt anterior.
Els següents doctests mostren exemples de com ha de respondre la funció:
>>> no1, n1 = nombre_or(0.01) >>> round(no1, 2), n1 (1.62, 7) >>> no2, n2 = nombre_or(0.1) >>> round(no2, 2), n2 (1.6, 5) >>> no3, n3 = nombre_or(0.001) >>> round(no3, 3), n3 (1.618, 10)
Trobaràs més tests al fitxer
test-nombre_or.txt