2

有人可以解释为什么这不相等吗?

import scipy
import math
sum(math.comb(250, i) for i in range(0, 251)) == sum(scipy.special.comb(250, i) for i in range(0, 251))

但是,例如,是吗?

sum(math.comb(25, i) for i in range(0, 26)) == sum(scipy.special.comb(25, i) for i in range(0, 26))

谢谢 :)

4

1 回答 1

2

从您找到的文档中,您必须将 'exact' 标志设置为 True ,如下所示:

scipy.special.comb(250, i, exact=True)

然后您的代码将读取

import scipy.special as ssp
import math
print(sum(math.comb(250, i) for i in range(0, 251)) == sum(ssp.comb(250, i, exact=True) for i in range(0, 251)))

并输出“真”。

文件说

精确布尔,可选

如果精确为 False,则使用浮点精度,否则计算精确长整数。

于 2021-04-29T10:20:23.303 回答