public member function
<random>
std::discrete_distribution::(constructor) (1)discrete_distribution();(2)
template <class InputIterator> discrete_distribution (InputIterator first, InputIterator last);(3)
discrete_distribution (initializer_list<double> il);(4)
template <class UnaryOperation> discrete_distribution (size_t nw, double xmin, double xmax, UnaryOperation fw);(5)
explicit discrete_distribution (const param_type& parm);
Construct discrete distribution
Constructs a discrete_distribution object, initializing it depending on the constructor version used:1
fw(xmin+(xmax-xmin)*(k+0.5)/nw)
All weights shall be non-negative values, and at least one of the values in the sequence must be positive.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// discrete_distribution constructor
#include <iostream>
#include <chrono>
#include <random>
#include <functional>
#include <array>
int main()
{
// construct a trivial random generator engine from a time-based seed:
unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
std::default_random_engine generator (seed);
std::array<double,4> init = {1.0,2.0,3.0,4.0};
std::discrete_distribution<int> first;
std::discrete_distribution<int> second (init.begin(),init.end());
std::discrete_distribution<int> third {0.1,0.2,0.3,0.4};
std::discrete_distribution<int> fourth (4,0.0,40.0,std::bind2nd(std::plus<double>(),5.0));
std::discrete_distribution<int> fifth (fourth.param());
// display probabilities:
std::cout << "displaying probabilities:";
std::cout << std::endl << "first : ";
for (double x:first.probabilities()) std::cout << x << " ";
std::cout << std::endl << "second: ";
for (double x:second.probabilities()) std::cout << x << " ";
std::cout << std::endl << "third : ";
for (double x:third.probabilities()) std::cout << x << " ";
std::cout << std::endl << "fourth: ";
for (double x:fourth.probabilities()) std::cout << x << " ";
std::cout << std::endl << "fifth : ";
for (double x:fifth.probabilities()) std::cout << x << " ";
std::cout << std::endl;
return 0;
}
displaying probabilities: first : 1 second: 0.1 0.2 0.3 0.4 third : 0.1 0.2 0.3 0.4 fourth: 0.1 0.2 0.3 0.4 fifth : 0.1 0.2 0.3 0.4
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4