【问题标题】:How to properly seed a mersenne twister RNG?如何正确播种 mersenne twister RNG?
【发布时间】:2012-01-13 18:24:57
【问题描述】:

这其实并不像我最初想的那么简单。

在没有硬件 RNG 的情况下,播种 Mersenne Twister 的最佳方法是什么?

或者我应该说,播种用于生成 UUID 的 Mersenne Twister RNG 的可接受方法是什么?

【问题讨论】:

  • 对伪随机数生成器 here 进行了很好的讨论,其中包括关于 PRNG 正确种子的部分(参见规则 3),它使用 md5sum/dev/random 生成种子。 (这还包括一些 PRNG 算法,它们比 MT 更容易编码,但可以说同样好)。
  • @Chris 你想把它作为答案发布吗?我认为这是一篇非常好的文章,对一般 PRNG 的播种很有帮助。
  • @MattH 添加了我的评论作为答案并进行了详细说明。感谢您的建议。

标签: c random mersenne-twister


【解决方案1】:

对伪随机数生成器here 进行了很好的讨论,其中包括关于正确播种 PRNG 的部分(参见规则 3),它使用 md5sum/dev/random/dev/urandom 来生成种子。

这还包括一些 PRNG 算法,它们比 MT 更容易编码(

进一步阅读:

  1. Seed std::mt19937 from std::random_device
  2. Best way to seed mt19937_64 for Monte Carlo simulations
  3. How to obtain (almost) unique system identifier in a cross platform way?

【讨论】:

    猜你喜欢
    • 2023-03-18
    • 2010-12-19
    • 2016-02-21
    • 2014-02-22
    • 2012-02-01
    • 2017-11-23
    • 2016-01-06
    • 1970-01-01
    • 2017-06-10
    相关资源
    最近更新 更多