std::random_device 和 MinGW 的再现性问题
在 C 中,
分析
不一致的行为引发了有关确定性的问题
“请注意,如果非确定性源(例如硬件设备),则 std::random_device 可以根据伪随机数引擎来实现) 无法用于实现。”
这表明当真正的随机源不可用时,库会依靠伪随机生成器。然而,在 MinGW 4.8.1 的情况下,即使具有伪随机性,输出仍然是一致可预测的。
可疑的基本原理
一种理论假设这种行为可能是故意的。通过提供非随机序列,该库突出了底层实现的随机性中的潜在缺陷。这将向开发人员发出警告,生成的随机数可能并非真正不可预测。
解决方案
要使用 MinGW 4.8.1 生成真正的随机序列,用户可以考虑使用
以上是为什么 std::random_device 产生与 MinGW 4.8.1 相同的序列?的详细内容。更多信息请关注PHP中文网其他相关文章!