我有一个用二项式系数法计算加泰罗尼亚数的代码。在
def BinominalCoefficient(n,k):
res = 1;
if (k > n - k):
k = n - k
for i in range(k):
res *= (n - i)
res /= (i + 1)
return res
def CatalanNumbers(n):
c = BinominalCoefficient(2*n, n)
return (c//(n+1))
print (CatalanNumbers(510))
当我试图计算加泰罗尼亚数字n大于510时,我得到了一个“nan”的结果。为什么会这样?我该怎么解决呢?在
除了xnx's answer,请注意,从} (二项式系数),我们也可以这样计算加泰罗尼亚数字:
Python 3.8
开始,在标准库中添加^{我假设您使用的是python3。在
您的
res /= (i + 1)
应该是res //= (i + 1)
,以强制执行整数运算:退货
^{pr2}$得到
nan
,因为python3中的除数/=返回一个溢出到inf
的浮点。在相关问题 更多 >
编程相关推荐