【问题标题】:How to generate the same random numbers in one language as in another? [closed]如何用一种语言生成与另一种语言相同的随机数? [关闭]
【发布时间】:2020-11-19 00:25:54
【问题描述】:

我正在将代码从 Stata 转换为 R。相同的随机种子不会生成相同的输出。我不确定其他语言(Python、Java 等)是否也是如此。如何生成不同语言的相同随机数?

【问题讨论】:

  • 唯一真正的解决方案是从其他语言中调用一种语言
  • 您必须以您关心的所有语言实现相同的 PRNG。您能否详细告诉我们您是如何遇到问题的,因为没有生成相同的随机数?
  • “相同的随机数”是矛盾的。如果您想要相同的数字序列,请使用具有相同配置和输入的相同生成器。如果你想要随机数,那么当数字不同时你不应该抱怨。
  • @Kayaman 在表示伪随机时说“随机”不是常见的做法吗?甚至标签也是如此。
  • en.wikipedia.org/wiki/List_of_random_number_generators 中选择一种算法并在不同的语言上实现它可能是一项有趣的任务(对你的学生来说!)

标签: java python r random stata


【解决方案1】:

R 使用自己的 Mersenne-Twister 初始化方法(请参阅help("set.seed")),这与其他语言的做法不同。确保使用相同 PRNG 的最简单方法(并避免自己实施低于标准的东西),就是简单地连接 R 和 Stata 并使用其中任何一个的 PRNG。

但是,值得牢记的是,除非您在完全相同的硬件和操作系统上使用完全相同的软件,否则不可能实现真正的再现性。因此,我不会花精力尝试使用不同的软件来实现相同的 PRNG 流。相反,我会生成这些数字,存储它们并根据需要导入它们。

【讨论】:

    猜你喜欢
    • 2014-11-04
    • 2011-01-04
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    • 2011-05-07
    相关资源
    最近更新 更多