IEEE 倍精度演算を思い出してください。では、IEEE 倍精度で計算できるn > 1
のはどれですか? binom(n,k)
さらに、同じ間隔で、中間の階乗値がオーバーフローするのはいつですか?
私の最初の質問では、間隔を見つけましたn < 2^53
。これが正しいかどうかはわかりません。
IEEE 倍精度演算を思い出してください。では、IEEE 倍精度で計算できる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])
ようなクエリを使用して Wolfram Alpha から取得した) を正確に表現するために必要なビット数 (2 進数) のリストです。
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
すべてbinom(n, k)
を倍精度浮動小数点 (53 ビット仮数) で正確に表現できる最大値は です56
。
n
すべてbinom(n, k)
を倍精度浮動小数点 (11 ビット指数) で近似的に表現できる最大値は です1029
。
同様の最大制限はn!
、n = 18
(正確な表現) と n = 170
(浮動小数点近似) です。