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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::weibull_distribution - std::weibull_distribution

Synopsis
	  Defined in header <random>
	  template< class RealType = double >  (since C++11)
	  class	weibull_distribution;

	  The  weibull_distribution  meets  the	 requirements  of a RandomNum-
       berDistribution and
	  produces random numbers according to the Weibull distribution:

		  \(\small{f(x;a,b)=\frac{a}{b}{(\frac{x}{b})}^{a-1}\exp{(-{(\frac{x}{b})}^{a})}
		  }\)f(x;a,b) =

		  a
		  b

		  x
		  b

		   a-1
		  exp

		  -

		  x
		  b

		   a

	  a is the shape parameter and b the scale parameter.

	  std::weibull_distribution satisfies RandomNumberDistribution

Template parameters
	  RealType - The result	type generated by the generator. The effect is
       undefined if
		     this is not one of	float, double, or long double.

Member types
	  Member type	    Definition
	  result_type	    RealType
	  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
       // Run this code

	#include <iostream>
	#include <iomanip>
	#include <string>
	#include <map>
	#include <random>
	#include <cmath>
	int main()
	{
	    std::random_device rd;
	    std::mt19937 gen(rd());

	    std::weibull_distribution<>	d;

	    std::map<int, int> hist;
	    for(int n=0; n<10000; ++n) {
		++hist[std::round(d(gen))];
	    }
	    for(auto p : hist) {
		std::cout   <<	 std::fixed   <<    std::setprecision(1)    <<
       std::setw(2)
			  <<  p.first << ' ' <<	std::string(p.second/200, '*')
       << '\n';
	    }
	}

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

External links
	    * Weisstein, Eric W.  "Weibull  Distribution."  From  MathWorld--A
       Wolfram Web
	      Resource.
	    * Weibull distribution. From Wikipedia.

http://cppreference.com		  2022.07.31	  std::weibull_distribution(3)

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

home | help