【发布时间】:2014-09-11 08:19:23
【问题描述】:
import math
a = 100
b = 110
e = 2.71828
x = (e**-a)*(a**b)/math.factorial(b)
print round(x, 5)
当 a 和 b 很大时,我会收到以下消息:
Traceback (most recent call last):
File "<stdin>", line 5, in <module>
OverflowError: long int too large to convert to float
【问题讨论】:
-
math.factorial(b)== 198! == 1.98..e370 大于 Double.MaxValue -
似乎不言自明:值太大
-
一个更好的问题可能是问为什么需要 198 的阶乘!
-
这是泊松分布,我需要 140 - 220 之间的数字
标签: python