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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::lognormal_distribution - std::lognormal_distribution

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

	  The  lognormal_distribution random number distribution produces ran-
       dom numbers x > 0
	  according to a Log-normal distribution:

	  \({\small f(x;m,s) = \frac{1}{sx\sqrt{2\pi} }	\exp{(-\frac{ {(\ln{x}
       - m)}^{2}
	  }{2{s}^{2} })} }\)f(x; m,s) =

	  1
	  sx

	  2

	  exp

	  -

	  (ln x	- m)2
	  2s2

	  The parameters m and s are, respectively, the	mean and standard  de-
       viation of the
	  natural logarithm of x.

	  std::lognormal_distribution satisfies	all requirements of RandomNum-
       berDistribution.

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 (C++11) 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
	  m		returns	the distribution parameters
	  s		(public	member function)
	  (C++11)
	  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 <cmath>
	#include <iomanip>
	#include <iostream>
	#include <map>
	#include <random>
	#include <string>

	int main()
	{
	    std::random_device rd;
	    std::mt19937 gen(rd());

	    std::lognormal_distribution<> d(1.6, 0.25);

	    std::map<int, int> hist;
	    for	(int n = 0; n <	1e4; ++n)
		++hist[std::round(d(gen))];

	    for	 (std::cout << std::fixed << std::setprecision(1); auto	[x, y]
       : hist)
		std::cout << std::hex << x << '	' << std::string(y / 200, '*')
       << '\n';
	}

Possible output:
	2
	3 ***
	4 *************
	5 ***************
	6 *********
	7 ****
	8 *
	9
	a
	b
	c

External links
	  Weisstein, Eric W. "Log Normal Distribution."	From MathWorld	A Wol-
       fram Web
	  Resource.

http://cppreference.com		  2024.06.10	 std::lognor...distribution(3)

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

home | help