我正在將以下 python 計算的結果與 Mathematica 進行比較:https ://www.wolframalpha.com/input?i=sum (500 choose r )(-1)^r /(r! ) , r=0 到 500
import numpy as np
from decimal import *
import scipy.special
from scipy.special import factorial
getcontext().prec = 30
i = 500
sum(np.array([scipy.special.comb(Decimal(i), (r), exact=True)*pow(-1, r)/Decimal(factorial(r, exact=False)) for r in range(i 1)]))
i = 400即使我通過decimal模塊在我的 python 代碼中設定了任意精度,這兩個計算都給出了幾乎相同的值,但在那之后卻沒有收斂。用 Mathematica 計算似乎是正確的。我可以知道,我們如何在 python 中獲得與 Mathematica 相同的結果以獲取更大的結果i?
uj5u.com熱心網友回復:
問題是您在階乘中有exact=False。
>>> import numpy as np
>>> from decimal import *
>>> import scipy.special
>>> from scipy.special import factorial
>>> getcontext().prec = 30
>>>
>>> i = 500
>>> sum(np.array([scipy.special.comb(Decimal(i), (r), exact=True)*pow(-1, r)/Decimal(factorial(r, exact=False)) for r in range(i 1)]))
Decimal('-7.13859062099388393889008217957')
>>> sum(np.array([scipy.special.comb(Decimal(i), (r), exact=True)*pow(-1, r)/Decimal(factorial(r, exact=True)) for r in range(i 1)]))
Decimal('0.196589352363439561009074161963')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/473653.html
標籤:Python 麻木的 wolfram-mathematica 精确 二项式系数
上一篇:輸出不來。繪圖問題[Matlab到python的轉換]
下一篇:計算特定范圍內的出現次數
