回忆IEEE双精度算法。现在,在IEEE Double Precision中可以为哪个n > 1
计算binom(n,k)
?另外,在相同的时间间隔内,中间阶乘值何时会溢出?
对于我的第一个问题,我找到了间隔n < 2^53
。不确定这是否正确。
最佳答案
对于给定的n
,binom(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
(浮点近似)。