std::piecewise_linear_distribution
Материал из cppreference.com
|
|
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
| Заголовочный файл <random>
|
||
| template< class RealType = double > class piecewise_linear_distribution; |
(начиная с C++11) | |
std::piecewise_linear_distribution produces random floating-point numbers, which are distributed according to a linear probability density function within each of the several subintervals [b
i, b
i+1). The distribution is such that the probability density at each interval boundary is exactly the predefined value p
i.
i≤x<b
i+1 is p
i
| b i+1-x |
| b i+1-b i |
i+1
| x-b i |
| b i+1-b i |
k are calculated as w
k/S where S is the sum of all None
| 1 |
| 2 |
k+w
k+1)(b
k+1−b
k).
The set of interval boundaries b
i and the set of weights at boundaries w
i are the parameters of this distribution.
[править] Член типов
| Член типа
Original: Member type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Definition |
result_type
|
RealType |
param_type
|
Тип набора параметров, не указано
Original: the type of the parameter set, unspecified The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
[править] Член функций
| строит новые распределения Original: constructs new distribution The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член) | |
| Восстанавливает внутреннее состояние распределения Original: resets the internal state of the distribution The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член) | |
Original: Generation The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |
| создает следующее случайное число в распределении Original: generates the next random number in the distribution The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член) | |
Original: Characteristics The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |
| получает список границ интервала Original: obtains the list of interval boundaries The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член) | |
| получает список плотности вероятности в интервале границ Original: obtains the list of probability densities at interval boundaries The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член) | |
| получает или задает объект распределения параметра Original: gets or sets the distribution parameter object The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член) | |
| возвращает минимальное потенциально сгенерированное значение Original: returns the minimum potentially generated value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член) | |
| возвращает максимальное потенциально сгенерированное значение Original: returns the maximum potentially generated value The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (public функция-член) | |
[править] Не являющиеся членами функций
| сравнивает два объекта распределения Original: compares two distribution objects The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (функция) | |
| осуществляет входной поток и выход на псевдослучайных чисел распределения Original: performs stream input and output on pseudo-random number distribution The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (функция) | |
[править] Пример
#include <iostream> #include <iomanip> #include <string> #include <map> #include <random> int main() { std::random_device rd; std::mt19937 gen(rd()); // increase the probability from 0 to 5 // remain flat from 5 to 10 // decrease from 10 to 15 at the same rate std::vector<double> i{0, 5, 10, 15}; std::vector<double> w{0, 1, 1, 0}; std::piecewise_linear_distribution<> d(i.begin(), i.end(), w.begin()); std::map<int, int> hist; for(int n=0; n<10000; ++n) { ++hist[d(gen)]; } for(auto p : hist) { std::cout << std::setw(2) << p.first << ' ' << std::string(p.second/100, } }
Вывод:
0 * 1 *** 2 **** 3 ****** 4 ********* 5 ********* 6 ********* 7 ********** 8 ********* 9 ********** 10 ********* 11 ******* 12 **** 13 *** 14 *