在Python中遇到大量问题

时间:2012-12-08 06:15:17

标签: python largenumber birthday-paradox

遇到问题:

from pylab import *
x=arange(0,365,1)
y = []
for j in x:
    y.append(1-((math.factorial(365)/math.factorial(365-j))/(365**j)))

plot(x,y)
show()

有什么想法?我正在运行python 2.7

1 个答案:

答案 0 :(得分:3)

将其更改为:

(math.factorial(365)/math.factorial(365-j))/long(365**j)

问题是numpy尝试在执行除法之前将long转换为numpy类型 - 但是numpy不能这样做,因为它会导致溢出,所以numpy会抛出错误。如果您先转换为long,则除法均在numpy之外完成。