为什么我使用 MinGW GCC 4.8.1 从 std::random_device 获得相同的序列?
在提供的代码中,一个实例std::random_device (rd) 的 std::random_device (rd) 用作 Mersenne Twister 引擎 (mt) 的种子。然而,观察到的每次运行都获得相同随机数序列的行为表明 rd 可能无法提供真正的随机种子。
根据文档 (http://en.cppreference.com/ w/cpp/numeric/random/random_device),std::random_device 旨在访问非确定性硬件源以实现随机性。然而,如果这样的源不可用,则实现可以诉诸伪随机数引擎。这可以解释在 MinGW GCC 4.8.1 中观察到的确定性行为。
值得注意的是 random_device 不能保证提供真正的随机性。一些实现,例如 MinGW GCC 4.8.1 中的实现,可能会故意提供固定序列来证明流的非随机性。
要为每次运行获得不同的输出,应该考虑替代的播种方法随机数生成器,例如使用基于当前时间的种子或某些用户输入的加密哈希。
以上是为什么我的 `std::random_device` 在 MinGW GCC 4.8.1 上产生相同的序列?的详细内容。更多信息请关注PHP中文网其他相关文章!