Rに入る1e9999999999999999999999999999999
と、Rはハングし、応答しません-終了する必要があります。
これは、3つの異なるコンピューター、OS(Windows 7およびUbuntu)で発生するようです。これは、RStudio、RGui、およびRScriptで発生します。
数値をより簡単に生成するためのコードを次に示します。
boom <- paste(c("1e", rep(9, 31)), collapse="")
eval(parse(text=boom))
明らかに、これは実際的な問題ではありません。この大きさの数字を使う必要はありません。それは好奇心の問題です。
不思議なことに、1e9999999999999999999999999999998
または1e10000000000000000000000000000000
(累乗から1を足したり引いたり)しようとするInf
と、0
それぞれとが得られます。この数は明らかにある種の境界ですが、ここで何となぜの間ですか?
私はそれが次のようになるかもしれないと考えました:
- 浮動小数点の問題ですが、問題の数よりずっと前の1.7977e308で最大になると思います。
- 32ビット整数の問題ですが、2 ^ 32は4294967296であり、問題の数値よりもはるかに小さくなっています。
- 本当に変だ。これが私の支配的な理論です。
編集:遅くとも2015-09-15の時点で、これによりRがハングすることはなくなりました。彼らはそれにパッチを当てたに違いありません。