gpt4 book ai didi

R随机数发生器故障?

转载 作者:行者123 更新时间:2023-12-04 07:31:10 24 4
gpt4 key购买 nike

我正在研究基本 R 的 RNG,并且很好奇在扩展到需要的大量随机数时,Mersenne-Twister 的 32 位实现是否可能会限制它,所以我做了一个简单的测试:

set.seed(8)
length(unique(runif(1e8)))
# [1] 98845641
1e8 - 98845641
# 1154359

所以事实证明,1亿抽奖中确实有很多重复。

当我切换到 dqrng包实现的MT RNG的64位版本时,问题没有出现。

问题 1:

引用的 64 位是指使用的浮点数类型?

问题2:

我的结论是否正确,因为可能的数字跨度很大(64 位 FP 与 32 位 FP),使用 64 位 MT 时重复的可能性较小?

最佳答案

来自 ?Random :

Do not rely on randomness of low-order bits from RNGs. Most of the supplied uniform generators return 32-bit integer values that are converted to doubles, so they take at most 2^32 distinct values and long runs will return duplicated values.



事实上,当我们计算 expected number of draws that have a duplicate 时,我们得到
M <- 2^32
n <- 1e8
(n * (1 - (1 - 1 / M)^(n - 1))) / 2
# [1] 1150705

这与您的结果非常接近。

关于R随机数发生器故障?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53024805/

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