我正在完成一个项目欧拉问题,但是此功能以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)
它很可能很慢,但是就像您从项目欧拉项目中做的事情一样,我想您不想近似梳子值,而是使用确切的梳子值。