double entropy() const; | (since C++11) |
Obtains an estimate of the random number device entropy, which is a floating-point value between min() and log
2(max()+1). If the device has n states whose individual probabilities are P
0,...,P
n-1, the device probability S is defined as.
S = -Σn-1
i=0P
ilog(P
i).
A deterministic random number generator (e.g. a pseudo-random engine) has entropy zero.
Exceptions
noexcept
specification: noexcept
Return value
The value of the device entropy, or zero if not applicable.
Notes
This function is not fully implemented in some standard libraries. For example, gcc and clang always return zero even though the device is non-deterministic. In comparison, Visual C++ always returns 32, and boost.random returns 10.
Example
Example output on one of the implementations.
#include <iostream> #include <random> int main() { std::random_device rd; std::cout << rd.entropy() << '\n'; }
Possible output:
32
Please login to continue.