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. |
| Defined in header <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. (パブリックメンバ関数) | |
| リセットさ分布の内部状態 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. (パブリックメンバ関数) | |
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. (パブリックメンバ関数) | |
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. (パブリックメンバ関数) | |
| 区間の境界での確率密度のリストを取得します 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. (パブリックメンバ関数) | |
| 分布パラメータオブジェクトを取得または設定します 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. (パブリックメンバ関数) | |
| 最小潜在的に生成された値を返します 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. (パブリックメンバ関数) | |
| 最大潜在的に生成された値を返します 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. (パブリックメンバ関数) | |
[編集] 非メンバ関数
| 2つのディストリビューションオブジェクトを比較します 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, } }
Output:
0 * 1 *** 2 **** 3 ****** 4 ********* 5 ********* 6 ********* 7 ********** 8 ********* 9 ********** 10 ********* 11 ******* 12 **** 13 *** 14 *