2013-06-03 19 views
6

Sto cercando di calcolare pi con precisione arbitraria su Python utilizzando una delle formule di Ramanujan: http://en.wikipedia.org/wiki/Approximations_of_%CF%80#20th_century. Richiede fondamentalmente molti numeri fattoriali e una divisione dei numeri a virgola mobile di alta precisione.Calcolo di Pi con decimale su Python

Ecco il mio codice finora: http://pastie.org/private/pa6ijmoowiwiw4xwiqmq

sto ottenendo errore da qualche parte intorno alla quindicesima cifra di pi greco (3,1415926535897930 e dovrebbe essere 3,1415926535897932). Puoi dare qualche consiglio perché è successo? I' using tipo decimale e la documentazione dire che permette precisione arbitraria galleggianti e numeri interi.

PS: E 'un compito a casa quindi non posso utilizzare un'altra formula. PSS: sto usando Python 2.7

Grazie :)

+2

Ti rendi conto che 'decimale (sqrt (2))' è solo un modo complicato di fare 'sqrt (2)' senza il 'Decimal'? Provate con 'decimale (2) .sqrt()' – Bakuriu

risposta

3

Uso Decimal(2).sqrt() invece di Decimal(sqrt(2)).

Ho controllato le prime 1000 cifre e sembra funzionare bene. Tra l'altro, per qualche ragione il vostro uscite di codice di 1007 cifre decimali invece di 1000.

+0

Yup aggiungo precisione solo per essere sicuri. Molte grazie:) – GeneralFailure