"""
"make math your own, to make your own math"
-- Maria Droujkova
See:
http://mail.python.org/pipermail/edu-sig/2011-March/010224.htmlhttp://worldgame.blogspot.com/2011/03/pycon-2011.htmlhttp://groups.google.com/group/mathfuture/msg/4a847eb3cc12db77?hl=en"""
def makepi():
"""Pi to a thousand places
Ramanujan's freakish formula
http://worldgame.blogspot.com/2008/02/reflective-fragment.html """
# using_gmpy()
thegen = ramanujan(4000)
while True:
term1 = next(thegen)
term2 = next(thegen)
if term1 == term2: # just lucky?
break
return str(term2)[:1001]
#
http://code.google.com/p/gmpy/import gmpy # pre-installed binary gmpy2-2.0.0a1.win32-py3.1.exe
def ramanujan(p=1000):
gmpy.set_minprec(p)
term = gmpy.fsqrt(gmpy.mpf(8))/gmpy.mpz(9801)
n = gmpy.mpz(0)
thesum = gmpy.mpz(0)
while True:
numer = (gmpy.fac(4*n)*(gmpy.mpz(1103) + gmpy.mpz(26390)*n))
denom = (gmpy.fac(n)**4)*(gmpy.mpz(396)**(4*n))
theterm = numer/denom
thesum += theterm
ans = term * thesum
yield 1/ans
n += 1
if __name__ == "__main__":
print (makepi())
_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig