uniform_int::operator()
乱数値を返します。
template<class Engine>
result_type operator()(Engine& eng);
template<class Engine>
result_type operator()(Engine& eng, result_type n);
パラメーター
Engine
乱数エンジンの型。eng
乱数エンジン。n
乱数値の上限。
解説
1 つ目のメンバー関数は、一様に分布した整数値のソースとして、エンジン eng を使用して整数値を返し、それぞれの値 i は、両端を含む閉じた範囲 [min(), max()] の値を取り、いずれも等しい確率で発生します。範囲外の値の発生確率は 0 になります。
2 つ目のメンバー関数は、一様に分布した整数値のソースとして、エンジン eng を使用して整数値を返し、それぞれの値 i は、上端を含まない範囲 [0, n) の値を取り、いずれも等しい確率で発生します。範囲外の値の発生確率は 0 になります。
使用例
// std_tr1__random__uniform_int_operator_fn.cpp
// compile with: /EHsc
#include <random>
#include <iostream>
typedef std::mt19937 Myeng;
typedef std::uniform_int<unsigned int> Myceng;
int main()
{
Myeng eng;
Myceng ceng(1, 1 << 15);
Myceng::input_type engval = eng();
Myceng::result_type compval = ceng(eng);
compval = compval; // to quiet "unused" warnings
engval = engval;
std::cout << "min == " << ceng.min() << std::endl;
std::cout << "max == " << ceng.max() << std::endl;
ceng.reset(); // discard any cached values
std::cout << "a random value == " << ceng(eng) << std::endl;
std::cout << "a random value == " << ceng(eng) << std::endl;
std::cout << "a random value == " << ceng(eng) << std::endl;
return (0);
}
必要条件
ヘッダー : <random>
名前空間: std