Generadors P45231


Statement
 

pdf   zip

thehtml

Es demana els codis de diversos generadors (funcions que poden ser continuades generant una seqüència de resultats). Seguiu el format dels exemples que es mostren a sota.

  1. Escriviu un generador fibs() per als nombres de la sèrie de Fibonacci.
  2. Escriviu un generador roots(x) per als nombres del desenvolupament de Taylor per calcular l’arrel quadrada d’un real x≥0:
    f1(x)=x, 
    fn(x)=
    1
    2



    fn−1(x)+
    x
    fn−1(x)



    .
  3. Escriviu un generador primes() per als nombres primers.
  4. Escriviu un generador hammings() per als nombres de Hamming. Els nombres de Hamming són aquells que només tenen 2, 3 i 5 com a divisors primers.

Puntuació

Tots els apartats valen 25 punts.

Sample session
>>> g1 = fibs()
>>> [next(g1) for n in range(10)]
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
>>> g2 = roots(4)
>>> [round(next(g2), 10) for n in range(10)]
[4, 2.5, 2.05, 2.0006097561, 2.0000000929, 2.0, 2.0, 2.0, 2.0, 2.0]
>>> g3 = primes()
>>> [next(g3) for n in range(20)]
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71]
>>> g4 = hammings()
>>> [next(g4) for n in range(20)]
[1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24, 25, 27, 30, 32, 36]
Information
Author
Gerard Escudero i Jordi Petit
Language
Catalan
Official solutions
Python
User solutions
Python