gpt4 book ai didi

c++ - 有没有办法检查 std::random_device 是否实际上是随机的?

转载 作者:可可西里 更新时间:2023-11-01 17:40:19 24 4
gpt4 key购买 nike

引自cppreference :

std::random_device is a non-deterministic random number engine, although implementations are allowed to implement std::random_device using a pseudo-random number engine if there is no support for non-deterministic random number generation.

有没有办法检查当前的实现是否使用 PRNG 而不是 RNG(然后说错误退出),如果没有,为什么不呢?

请注意,一点谷歌搜索表明至少 MinGW 以这种方式实现了 std::random_device,因此如果 std::random_device 是真正的危险被使用。

---编辑---
此外,如果答案是否定的,并且有人可以就为什么没有这样的功能/特征/某物提供一些见解,我会非常感兴趣。

最佳答案

Is there a way to check whether current implementation uses PRNG instead of RNG (and then say exit with an error) and if not, why not?

有一个方法:std::random_device::entropy如果它是根据随机数引擎实现的(也就是说,它是确定性的),将返回 0.0

来自标准:

double entropy() const noexcept;

Returns: If the implementation employs a random number engine, returns 0.0. Otherwise, returns an entropy estimate for the random numbers returned by operator(), in the range min() to log_2(max() + 1).

关于c++ - 有没有办法检查 std::random_device 是否实际上是随机的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27886761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com