Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::random...ice::entropy(3) C++ Standard Libarystd::random...ice::entropy(3)

NAME
       std::random_device::entropy - std::random_device::entropy

Synopsis
	  double entropy() const noexcept;  (since C++11)

	  Obtains  an estimate of the random number device entropy, which is a
       floating-point
	  value	between	0 and log
	  2(max()+1)   (which	is   equal   to	  std::numeric_limits<unsigned
       int>::digits). If the
	  device has n states whose individual probabilities are P
	  0,...,P
	  n-1, the device entropy S is defined as

	  S = -n-1
	  i=0 P
	  ilog(P
	  i)

	  A  deterministic  random  number generator (e.g. a pseudo-random en-
       gine) has entropy
	  zero.

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, LLVM
	  libc++  prior	 to version 12 always returns zero even	though the de-
       vice is
	  non-deterministic. In	comparison, Microsoft Visual  C++  implementa-
       tion always returns
	  32, and boost.random returns 10.

	  The  entropy of the Linux kernel device /dev/urandom may be obtained
       using ioctl
	  RNDGETENTCNT - that's	what std::random_device::entropy() in GNU lib-
       stdc++ uses as of
	  version 8.1

Example
	  Example output on one	of the implementations

       // Run this code

	#include <iostream>
	#include <random>

	int main()
	{
	    std::random_device rd;
	    std::cout << rd.entropy() << '\n';
	}

Possible output:
	32

http://cppreference.com		  2022.07.31	 std::random...ice::entropy(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::random_device::entropy&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help