""" "make math your own, to make your own math" -- Maria Droujkova
See: http://mail.python.org/pipermail/edu-sig/2011-March/010224.html http://worldgame.blogspot.com/2011/03/pycon-2011.html http://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 Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig