(答えはRが小さい小数を格納するためのバイナリ数値をどのように使用するかを実際にある場合は、まだこれは、この上の知識を持つ人からなぜ起こるかについての詳細を聞くのが大好きだ)Rはなぜここで合計を間違って実行するのですか?
私は具体的には、合計を計算するためにRを使用していますこの1:
ここに私のRコードだ:
r = 21 #Number of times the loop executes
n = 52
sum = 0 #Running total
for(k in 0:r){
sum = sum + (1-(choose(2^(k), n)*(factorial(n)/(2^(n*k)))))
print(sum)
}
あなたは出力を見れば、あなたは気づくでしょう:
[1] 1
[1] 2
...
[1] 11.71419
[1] 11.71923
[1] 11.72176
[1] 12.72176
[1] 13.72176
なぜ19回目の反復後に1ずつ増加し始めますか?
他の自由に利用できる計算エンジンがこのタスクに適していますか?
k = 19の後の1の後の項が25の後のNaN(アンダーフロー)のため、合計に何をすると思いますか?有限なものに収束しますか? –
Mapleを試してみると、その合計が約11.72428812であることが分かります。 Rの観点からは、ランダム変数Tのモンテカルロシミュレーションを行うことです。 – Julius
書いたように、ループはr + 1回実行されます(注釈に示されているようにr回ではありません)。 –