El nombre e¶
El nombre es pot definir mitjançant la sèrie infinita següent:
Deseu el generador i les funcions següents al fitxer nombre_e.py.
Dissenyeu el generador
e_termesque genera els termes de la sèrie infinita anterior, és a dir,,
,
, i així successivament. Per exemple,
>>> from nombre_e import e_termes >>> it = e_termes() >>> print '%.5g' % it.next() 1 >>> print '%.5g' % it.next() 1 >>> print '%.5g' % it.next() 0.5 >>> print '%.5g' % it.next() 0.16667 >>> print '%.5g' % it.next() 0.041667 >>> print '%.5g' % it.next() 0.0083333 >>> print '%.5g' % it.next() 0.0013889 >>> print '%.5g' % it.next() 0.00019841 >>> print '%.5g' % it.next() 2.4802e-05 >>> print '%.5g' % it.next() 2.7557e-06 >>> print '%.5g' % it.next() 2.7557e-07
Els apartats següents d’aquest problema s’han de resoldre usant les utilitats de itertools i les funcions predefinides, però sense utilitzar iteracions; doncs, està prohibit usar while o for en el cos de les funcions que dissenyeu.
Dissenyeu la funció
e_serie_nque donat un nombre naturalncalcula la sèrie anterior fins al terme n-éssim inclòs, és a dir,:
Per exemple,
>>> from nombre_e import e_serie_n >>> print "%.5g" % e_serie_n(0) 1 >>> print "%.5g" % e_serie_n(1) 2 >>> print "%.5g" % e_serie_n(2) 2.5 >>> print "%.5g" % e_serie_n(3) 2.6667 >>> print "%.5g" % e_serie_n(4) 2.7083 >>> print "%.5g" % e_serie_n(5) 2.7167 >>> print "%.5g" % e_serie_n(6) 2.7181 >>> print "%.5g" % e_serie_n(7) 2.7183 >>> print "%.5g" % e_serie_n(8) 2.7183
Per aquest apartat, islice us pot resultar útil.
Dissenyeu la funció
e_serie_epsque donat l’error admissiblecalcula la sèrie anterior formada per tots els termes més grans que
, és a dir,
tal que
i
. Per exemple,
>>> from nombre_e import e_serie_eps >>> print "%.5g" % e_serie_eps(1e-3) 2.7181 >>> print "%.5g" % e_serie_eps(1e-4) 2.7183 >>> print "%.5g" % e_serie_eps(1e-5) 2.7183 >>> print "%.8g" % e_serie_eps(1e-5) 2.7182788 >>> print "%.8g" % e_serie_eps(1e-6) 2.7182815 >>> print "%.8g" % e_serie_eps(1e-7) 2.7182818 >>> print "%.8g" % e_serie_eps(1e-8) 2.7182818
Per aquest apartat, takewhile us pot resultar útil.