14

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

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

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

4

1 回答 1

8

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

这还包括一些 PRNG 算法,它们比 MT 更容易编码(< 10 行代码),但可以说同样好(长时间并通过所有 Dieharder 随机性测试)。

延伸阅读:

  1. 从 std::random_device 播种 std::mt19937
  2. 为蒙特卡罗模拟播种 mt19937_64 的最佳方法
  3. 如何以跨平台的方式获取(几乎)唯一的系统标识符?
于 2011-12-12T10:40:46.433 回答