召回 IEEE双精度算术。现在,{Double}精度可以n > 1
binom(n,k)
计算n < 2^53
?此外,在相同的时间间隔内,中间因子值何时会溢出?
对于我的第一个问题,我发现间隔 {{1}} 。不确定这是否正确。
答案 0 :(得分:1)
对于给定的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
所有n
可以在双精度浮点(53位尾数)中精确表示的最大binom(n, k)
为56
。
所有n
可以在双精度浮点(11位指数)中近似表示的最大binom(n, k)
为1029
。
n!
的类似最大限制为n = 18
(精确表示)和n = 170
(浮点近似)。