引用自cppreference:
std::random_device是一种不确定性随机数生成器,尽管实现允许使用伪随机数生成器来实现std::random_device,如果没有支持不确定性随机数生成器的话。
是否有一种方法可以检查当前实现是否使用PRNG而不是RNG(然后退出并显示错误),如果不能,为什么?
需要注意的是,少量的谷歌搜索显示至少MinGW以这种方式实现了std::random_device,因此如果要使用std::random_device,则存在真正的危险。
---编辑--- 此外,如果答案是否定的,有人能够给出为什么没有这样的函数/特性/某些东西的见解,我会非常感兴趣。
std::random_device是一种不确定性随机数生成器,尽管实现允许使用伪随机数生成器来实现std::random_device,如果没有支持不确定性随机数生成器的话。
是否有一种方法可以检查当前实现是否使用PRNG而不是RNG(然后退出并显示错误),如果不能,为什么?
需要注意的是,少量的谷歌搜索显示至少MinGW以这种方式实现了std::random_device,因此如果要使用std::random_device,则存在真正的危险。
---编辑--- 此外,如果答案是否定的,有人能够给出为什么没有这样的函数/特性/某些东西的见解,我会非常感兴趣。
<random>
库,如果存在真正的危险,应该使用专用且可审计的解决方案。 - Kerrek SBstd::random_device
是一个非确定性的随机数生成器,除非它不是。 - Brett Hale