std::random_device::entropy

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=0
P
i
log(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
doc_CPP
2016-10-11 10:05:56
Comments
Leave a Comment

Please login to continue.