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

FreeBSD Manual Pages

  
 
  

home | help
std::unifor...distribution(3) C++ Standard Libarystd::unifor...distribution(3)

NAME
       std::uniform_int_distribution - std::uniform_int_distribution

Synopsis
	  Defined in header <random>
	  template< class IntType = int	>  (since C++11)
	  class	uniform_int_distribution;

	  Produces  random integer values \(\small i\)i, uniformly distributed
       on the closed
	  interval \(\small[a, b]\)[a, b], that	is, distributed	 according  to
       the discrete
	  probability function

		  \({\small P(i|a,b) =}\frac{1}{b - a +	1}\)P(i|a,b) =

		  1
		  b  a + 1

		  .

	  std::uniform_int_distribution	 satisfies all requirements of Random-
       NumberDistribution

Template parameters
		    The	result type generated by the generator.	The effect  is
       undefined if
	  IntType  -  this is not one of short,	int, long, long	long, unsigned
       short, unsigned
		    int, unsigned long,	or unsigned long long.

Member types
	  Member type	     Definition
	  result_type(C++11) IntType
	  param_type(C++11)  the type of the  parameter	 set,  see  RandomNum-
       berDistribution.

Member functions
	  constructor	constructs new distribution
	  (C++11)	(public	member function)
	  reset		resets the internal state of the distribution
	  (C++11)	(public	member function)

Generation
	  operator()	generates the next random number in the	distribution
	  (C++11)	(public	member function)

Characteristics
	  a		returns	the distribution parameters
	  b		(public	member function)
	  param		gets or	sets the distribution parameter	object
	  (C++11)	(public	member function)
	  min		returns	the minimum potentially	generated value
	  (C++11)	(public	member function)
	  max		returns	the maximum potentially	generated value
	  (C++11)	(public	member function)

Non-member functions
	  operator==
	  operator!=		    compares two distribution objects
	  (C++11)		    (function)
	  (C++11)(removed in C++20)
	  operator<<		      performs	stream	input  and  output  on
       pseudo-random number
	  operator>>		    distribution
	  (C++11)		    (function template)

Example
	  This program simulates throwing 6-sided dice.

       // Run this code

	#include <random>
	#include <iostream>

	int main()
	{
	    std::random_device rd;  //Will be used to obtain a	seed  for  the
       random number engine
	    std::mt19937  gen(rd()); //Standard	mersenne_twister_engine	seeded
       with rd()
	    std::uniform_int_distribution<> distrib(1, 6);

	    for	(int n=0; n<10;	++n)
		//Use `distrib`	to transform the random	unsigned int generated
       by gen into an int in [1, 6]
		std::cout << distrib(gen) << ' ';
	    std::cout << '\n';
	}

Possible output:
	1 1 6 5	2 2 5 5	6 2

http://cppreference.com		  2022.07.31	 std::unifor...distribution(3)

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

home | help