执行代码后
RNGkind(kind="Mersenne-Twister") # the default anyway
set.seed(123)
n = 10^5
x = runif(n)
print(x[22662] == x[97974])
TRUE
是输出!
例如,如果我使用RNGkind(kind="Knuth-TAOCP-2002")
类似的情况:我在x
. 鉴于两个随机发生器的周期,结果似乎极不可能。
难道我做错了什么?我需要生成至少一百万个随机数。
我正在使用带有 R 版本 3.6.2 的 Windows 8.1;平台:x86_64-w64-mingw32/x64(64 位)和 RStudio 1.2.5033。
其他发现:
- 有一个包不同的球,我们选择一个球次并每次都放回去。概率所有选择的球都不同等于.
- R 文档指向一个链接,其中提供了用于 64 位机器的 Mersenne-Twister 实现:http: //www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt64.html
均匀抽样间隔是通过首先选择一个随机的 64 位整数获得的,所以我计算了 64 位的上述概率和(当结果相当低)32位案例:
然后,我尝试了 1000 个随机种子,并计算了所有生成的数字不同时的案例比例:0.303。
所以,目前,我假设由于某种原因,实际使用了 32 位整数。