public member function
<random>

std::exponential_distribution::(constructor)

(1)
explicit exponential_distribution ( result_type lambda = 1.0 );
(2)
explicit exponential_distribution ( const param_type& parm );
Construct exponential distribution
Constructs an exponential_distribution object, adopting the distribution parameters specified either by lambda or by object parm.

Parameters

lambda
Average rate of occurrence (λ).
This represents the number of times the random events are observed by interval, on average.
Its value shall be positive (λ>0).
result_type is a member type that represents the type of the random numbers generated on each call to operator(). It is defined as an alias of the first class template parameter (RealType).
parm
An object representing the distribution's parameters, obtained by a call to member function param.
param_type is a member type.

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// exponential_distribution example
#include <iostream>
#include <chrono>
#include <thread>
#include <random>

int main()
{
  // construct a trivial random generator engine from a time-based seed:
  int seed = std::chrono::system_clock::now().time_since_epoch().count();
  std::default_random_engine generator (seed);

  std::exponential_distribution<double> distribution (1.0);

  std::cout << "ten beeps, spread by 1 second, on average: " << std::endl;
  for (int i=0; i<10; ++i) {
    double number = distribution(generator);
    std::chrono::duration<double> period ( number );
    std::this_thread::sleep_for( period );
    std::cout << "beep!" << std::endl;
  }

  return 0;
}


Output:
ten beeps, spread by 1 second, on average:
beep!
beep!
beep!
beep!
beep!
beep!
beep!
beep!
beep!
beep!

Complexity

Constant.

See also