All pastes #1236692 Raw Edit

piBrute.py

public python v1 · immutable
#1236692 ·published 2008-10-26 06:22 UTC
rendered paste body
# piBrute pi approximator# thorsdecree 2008# import floor division using / operand (because we don't want int values!)# import decimals (for precision greater than 16 decimals of float()from __future__ import divisionfrom decimal import *# set decimal precision to 50 decimalsgetcontext().prec = 50# have to make float value into string to convert to decimalpi = Decimal("3.1415926535897932384626433832795028841971693993751058209749445923078164062862")num = int(22)den = int(7)x = int(0)y = int(0)# begin... need to optimize this! It is WAY slower than float()# even with same precision... /pulls hair/while y < 100:    while x < 100000:        x = 1 + x        q = Decimal(num) / Decimal(den)        if q < pi:            num = int(num + 1)        elif q > pi:            den = int(den + 1)# hmm... any way to eliminate that redundancy?? I don't think# that I need that statement twice, ideally....    q = Decimal(num) / Decimal(den)    print 'pi is approximately %.51s' %pi    print 'approximately      ', q    print 'approximation is %i' %num, " /  %i" %den    y = 1 + y    x = int(0)print '----------------------------------------------------------------------------------------'print 'pi is approximately %.51s' %piprint 'approximately      ', qprint 'approximation is %i' %num, " /  %i" %denprint 'DONE'# this is the first time I have decently commented ANYTHING I made. w00t for me!# a good programmer never comments his code, though... if it was hard to make# it should be hard to read. Thx Dombo and Richo for your help... well, Dom at least# thx to Richo for tons of other stuff, tho. 'righto!'