[Tutor] How to calculate pi with another formula?
Kent Johnson
kent_johnson at skillsoft.com
Sat Oct 30 03:04:12 CEST 2004
Download the reference implementation from the PEP:
http://www.python.org/peps/pep-0327.html#reference-implementation
PEPs are Python Enhancement Proposals. Any change to the Python language or
the standard libraries is written up as a PEP. Library changes often have
reference implementations so people can try them out.
Kent
At 04:54 PM 10/29/2004 -0400, Isr Gish wrote:
>How can I get the Decimal module without downloading the whole install for
>Python 2.4
>
>All the best,
>Isr
>
>
>-----Original Message-----
> >From: "Gregor Lingl"<glingl at aon.at>
> >Sent: 10/29/04 2:27:11 PM
> >To: "Dick Moores"<rdm at rcblue.com>
> >Cc: "tutor at python.org"<tutor at python.org>
> >Subject: Re: [Tutor] How to calculate pi with another formula?
> >Hi Dick!
> >
> >Accidentally I just was tinkering around with the new
> >decimal module of Python2.4. (By the way: it also works
> >with Python 2.3 - just copy it into /Python23/Lib)
> >
> >The attached program uses a very elementary (and inefficient)
> >formula to calculate pi, namely as the area of a 6*2**n-sided
> >polygon (starting with n=0), inscribed into a circle of radius 1.
> >(Going back to Archimedes, if I'm right ...)
> >
> >Nevertheless it calculates pi with a precision of (nearly)
> >100 digits, and the precision can be arbitrarily enlarged.
> >In the output of this program only the last digit is not correct.
> >
> >import decimal
> >
> >decimal.getcontext().prec = 100
> >
> >def calcpi():
> > s = decimal.Decimal(1)
> > h = decimal.Decimal(3).sqrt()/2
> > n = 6
> > for i in range(170):
> > A = n*h*s/2 # A ... area of polygon
> > print i,":",A
> > s2 = ((1-h)**2+s**2/4)
> > s = s2.sqrt()
> > h = (1-s2/4).sqrt()
> > n = 2*n
> >
> >calcpi()
> >
> >Just for fun ...
> >
> >Gregor
> >
> >
> >Dick Moores schrieb:
> >
> >> Is it possible to calculate almost-pi/2 using the (24) formula on
> >> <http://mathworld.wolfram.com/PiFormulas.html> without using (23)?
> >>
> >> If it's possible, how about a hint? Recursion?
> >>
> >> Thanks, tutors.
> >>
> >> Dick Moores
> >> rdm at rcblue.com
> >>
> >> _______________________________________________
> >> Tutor maillist - Tutor at python.org
> >> http://mail.python.org/mailman/listinfo/tutor
> >>
> >>
> >_______________________________________________
> >Tutor maillist - Tutor at python.org
> >http://mail.python.org/mailman/listinfo/tutor
> >
>
>_______________________________________________
>Tutor maillist - Tutor at python.org
>http://mail.python.org/mailman/listinfo/tutor
More information about the Tutor
mailing list