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

FreeBSD Manual Pages

  
 
  

home | help
std::random_device(3)	      C++ Standard Libary	 std::random_device(3)

NAME
       std::random_device - std::random_device

Synopsis
	  Defined in header <random>
	  class	random_device;	      (since C++11)

	  std::random_device  is a uniformly-distributed integer random	number
       generator that
	  produces non-deterministic random numbers.

	  std::random_device may be implemented	in terms of an implementation-
       defined
	  pseudo-random	number engine if a non-deterministic  source  (e.g.  a
       hardware	device)
	  is  not available to the implementation. In this case	each std::ran-
       dom_device object
	  may generate the same	number sequence.

Member types
	  Member type	      Definition
	  result_type (C++11) unsigned int

Member functions
Construction
	  constructor	    constructs the engine
	  (C++11)	    (public member function)
	  operator=	    the	assignment operator is deleted
	  (deleted) (C++11) (public member function)

Generation
	  operator()	    advances the engine's state	and returns the	gener-
       ated value
	  (C++11)	    (public member function)

Characteristics
	  entropy	    obtains the	entropy	estimate for the non-determin-
       istic random
	  (C++11)	    number generator
			    (public member function)
	  min		    gets the smallest possible	value  in  the	output
       range
	  [static] (C++11)  (public static member function)
	  max		     gets  the	largest	 possible  value in the	output
       range
	  [static] (C++11)  (public static member function)

Notes
	  A notable implementation where std::random_device  is	 deterministic
       in old versions
	  of  MinGW-w64	 (bug  338, fixed since	GCC 9.2). The latest MinGW-w64
       versions	can be
	  downloaded from GCC with the MCF thread model.

Example
       // Run this code

	#include <iostream>
	#include <map>
	#include <random>
	#include <string>

	int main()
	{
	    std::random_device rd;
	    std::map<int, int> hist;
	    std::uniform_int_distribution<int> dist(0, 9);

	    for	(int n = 0; n != 20000;	++n)
		++hist[dist(rd)]; // note: demo	only: the performance of many
				  // implementations of	random_device degrades
       sharply
				  // once the entropy pool is  exhausted.  For
       practical use
				  //  random_device  is	generally only used to
       seed
				  // a PRNG such as mt19937

	    for	(auto [x, y] : hist)
		std::cout << x << " : "	<< std::string(y / 100,	'*') <<	'\n';
	}

Possible output:
	0 : ********************
	1 : *******************
	2 : ********************
	3 : ********************
	4 : ********************
	5 : *******************
	6 : ********************
	7 : ********************
	8 : *******************
	9 : ********************

http://cppreference.com		  2024.06.10		 std::random_device(3)

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

home | help