[pyar] Devolver 2 valores generados por función yield
Mati Barriento
elmatibarriento en gmail.com
Mar Oct 7 00:51:24 ART 2014
>Pregunta al margen: de dónde salió el algoritmo?
Lo hice una mañ......nah, lo encontre en stackoverflow {0}
No lo entiendo y la verdad que no me puse a pensar pero me parecio mágico.
Solucion final:
def make_pi():
q, r, t, k, m, x = 1, 0, 1, 1, 3, 3
while True:
if 4 * q + r - t < m * t:
yield m
q, r, t, k, m, x = 10*q, 10*(r-m*t), t, k, (10*(3*q+r))//t -
10*m, x
else:
q, r, t, k, m, x = q*k, (2*q+r)*x, t*x, k+1,
(q*(7*k+2)+r*x)//(t*x), x+2
digitsArray = []
m = make_pi()
next(m) #gasta el primer digito.
for i in range(0,longer):
x,y = [next(m),next(m)] #consume 2 veces el generador
digitsArray.append(((x*10)+y))
{0} http://stackoverflow.com/questions/9004789/1000-digits-of-pi-in-python
More information about the pyar
mailing list