1

階乗の計算など、Python を使用した簡単な数値実験を行ってきました。たとえば、32 の階乗を計算します。

私のルーティーン:

2.6313083693369503e+35

scipy.misc から:

2.6313083693369355e+35

私のルーチンは階乗の対数を計算し、1 から 32 (この場合) までの対数の合計を計算し、次に exp 関数を使用するだけであることを指摘したいと思います ( Fortran 90)。

正解は驚きです

263130836933693530167218012160000000

pari/gpによると。

誰かがPythonで正しい数値の答えを探すことができる参考文献を教えてくれたらとてもうれしいです. ドキュメントは問題ありませんが、「短い」番号が必要な場合のみです。

4

2 に答える 2

0

logおよびexp関数は、精度が限られている浮動小数点で動作します。一方、Python の整数は、任意の精度を持つことができます。したがって、整数を使用して線形空間で 32 の階乗を計算できます。

f = 1
for i in xrange(32):
    f *= i + 1
print f  # prints '263130836933693530167218012160000000'
于 2013-10-30T16:08:20.640 に答える