6

ラマヌジャンの式の 1 つを使用して、Python で任意の精度で pi を計算しようとしています: http://en.wikipedia.org/wiki/Approximations_of_%CF%80#20th_世紀。基本的に、多くの階乗と高精度の浮動小数点数除算が必要です。

これまでの私のコードは次のとおりです。 http://pastie.org/private/pa6ijmoowiwiw4xwiqmq

円周率の 15 桁目あたりでエラーが発生します ( 3.1415926535897930 であり、 3.1415926535897932 である必要があります)。なぜそれが起こっているのかアドバイスをいただけますか?私は小数型を使用していますが、ドキュメントでは、任意の精度の浮動小数点数と整数値を使用できると書かれています。

PS: 宿題なので、別の公式は使えません。PSS: Python 2.7 を使用しています。

ありがとう:)

4

1 に答える 1

3

Decimal(2).sqrt()の代わりに使用しDecimal(sqrt(2))ます。

最初の 1000 桁を確認しましたが、問題なく動作しているようです。ところで、何らかの理由で、コードは 1000 ではなく 1007 桁を出力します。

于 2013-06-03T08:10:04.673 に答える