回忆IEEE双精度算法。现在,在IEEE Double Precision中可以为哪个n > 1计算binom(n,k)?另外,在相同的时间间隔内,中间阶乘值何时会溢出?

对于我的第一个问题,我找到了间隔n < 2^53。不确定这是否正确。

最佳答案

对于给定的nbinom(n, k)k = [n/2]的整数部分)将获得最大的n/2值。要使binom(n, k)以双精度精度格式表示,那么binom(n, [n/2])就足以表示。

下面列出了精确表示binom(n, [n/2])所需的位数(二进制数字)(使用类似于this one的查询从Wolfram Alpha中检索到)。

 n       binom(n, [n/2])

56          53 bits
57          54 bits


下面以二进制指数形式列出了binom(n, [n/2])的值。

 n       binom(n, [n/2])

1029     1.1... * 2^1023
1030     1.1... * 2^1024


可以在双精度浮点(53位尾数)中精确表示所有n的最大binom(n, k)56

可以在双精度浮点(11位指数)中近似表示所有n的最大binom(n, k)1029

n!的相似最大限制为n = 18(精确表示)和n = 170(浮点近似)。

10-07 23:28