如何用一种语言生成与另一种语言相同的随机数?
How to generate the same random numbers in one language as in another?
我正在将代码从 Stata 翻译成 R。相同的随机种子不会生成相同的输出。我不确定其他语言是否也是这种情况(Python、Java 等)。如何生成不同语言的相同随机数?
R 使用自己的 Mersenne-Twister 初始化方法(参见 help("set.seed")
),这与其他语言的做法不同。确保使用相同的 PRNG(并避免自己实现低于标准的东西)的最简单方法是简单地连接 R 和 Stata,并使用其中任何一个的 PRNG。
但是,值得记住的是,除非您在完全相同的硬件和 OS 上使用完全相同的软件,否则不可能实现真正的再现性。因此,我不会花精力尝试使用不同的软件实现相同的 PRNG 流。相反,我会生成这些数字,存储它们并根据需要导入它们。
我正在将代码从 Stata 翻译成 R。相同的随机种子不会生成相同的输出。我不确定其他语言是否也是这种情况(Python、Java 等)。如何生成不同语言的相同随机数?
R 使用自己的 Mersenne-Twister 初始化方法(参见 help("set.seed")
),这与其他语言的做法不同。确保使用相同的 PRNG(并避免自己实现低于标准的东西)的最简单方法是简单地连接 R 和 Stata,并使用其中任何一个的 PRNG。
但是,值得记住的是,除非您在完全相同的硬件和 OS 上使用完全相同的软件,否则不可能实现真正的再现性。因此,我不会花精力尝试使用不同的软件实现相同的 PRNG 流。相反,我会生成这些数字,存储它们并根据需要导入它们。