梳子:任何值超过40个返回无穷大的值?不知道为什么



我正在完成一个项目欧拉问题,但是此功能以40以上的任何值返回无限。

from scipy.special import comb
def B(x):
    product = 1
    for i in range(x + 1):
        product *= comb(x, i)
    return product

我回来的东西

  problem_650.py:10: RuntimeWarning: overflow encountered in double_scalars
  product *= comb(x, i)
  inf

解决此问题的任何帮助。

尝试以下:

def B(x):
    product = 1
    for i in range(x + 1):
        product *= comb(x, i, exact=True)
    return int(product)
B(40)

它很可能很慢,但是就像您从项目欧拉项目中做的事情一样,我想您不想近似梳子值,而是使用确切的梳子值。

相关内容

最新更新