gpt4 book ai didi

r - 为什么R将大数视为偶数

转载 作者:行者123 更新时间:2023-12-01 08:33:14 25 4
gpt4 key购买 nike

来自“http://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-doesn_0027t-R-think-the7.31

我们已经知道大数(超过 2^53)在模运算中会出错。

但是,我不明白为什么所有的大数都被视为偶数(我从未见过超过 2^53 的大整数的“奇数”),即使我在近似值上有一些错误

(2^53+1)%%2
(2^100-1)%%2

错误信息(模数精度可能完全丧失)可以忽略

等等。

都不是1而是0

为什么会这样? (我知道有一些近似值,但我需要具体知道原因)

> print(2^54,22)
[1] 18014398509481984.00000
> print(2^54+1,22)
[1] 18014398509481984.00000
> print(2^54+2,22)
[1] 18014398509481984.00000
> print(2^54+3,22)
[1] 18014398509481988.0000

最佳答案

IEEE double precision value有一个 53 位尾数。任何需要超过 53 位二进制精度的数字都将被四舍五入,即从 54 开始的数字将被隐式设置为零。因此,幅度大于 2^53 的任何数字都必然是偶数(因为其整数表示的最低有效位超出了浮点精度,因此为零)。

关于r - 为什么R将大数视为偶数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15369961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com