gpt4 book ai didi

r - R 中的种子限制

转载 作者:行者123 更新时间:2023-12-04 09:56:02 25 4
gpt4 key购买 nike

R 中关于 set.seed 的共识是它有效地生成一长串由种子预先确定的伪随机数。然后,您对该序列进行的第一次调用(使用您使用的第一个非确定性函数)从该序列中获取第一批,第二次调用获取下一批,依此类推。

我想知道这有什么限制。具体来说,当你到达那个长序列的末尾时会发生什么?比方说,设置种子后,您会重复从前 100 个整数中采样。是否会出现一个点,您开始生成与开始时看到的相同的样本(以相同的顺序)?这需要多长时间? (它取决于种子吗?)如果不是,如何到达序列的“结尾”并大概绕回开头 list ?

最佳答案

R 中的 ?RNGkind 帮助页面提供了有关默认随机数生成器“Mersenne Twister”算法的更多详细信息:

"Mersenne-Twister": From Matsumoto and Nishimura (1998); code updated in 2002. A twisted GFSR with period 2^19937 - 1 and equidistribution in 623 consecutive dimensions (over the whole period). The ‘seed’ is a 624-dimensional set of 32-bit integers plus a current position in that set.

如此处所述,“周期”(返回开始并开始重复值所需的时间长度为 2^19937-1,或大约 10^(19937/log2(10)) = 10^6001。

  • 如果您的“批处理”大小恰好与周期完全一致,那么您确实会再次开始获得相同的批处理。
  • 我不确定 R 使用多少伪随机样本从集合中选择大小为 1 的样本。理想情况下,它仅为 1(因此您的“批量大小”将为 1),但它可能更多地取决于采样算法的普遍性/复杂性。
  • 我知道 runif() 或多或少直接从 PRNG 转换而来,因此一系列 runif() 调用确实会完全重复。

关于r - R 中的种子限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61923723/

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