使用生成器进行多个分发
随机数生成器可以(并且应该)用于多个分发。
#include <iostream>
#include <random>
int main()
{
std::default_random_engine pseudo_random_generator;
std::uniform_int_distribution<int> int_distribution(0, 9);
std::uniform_real_distribution<float> float_distribution(0.0, 1.0);
std::discrete_distribution<int> rigged_dice({1,1,1,1,1,100});
std::cout << int_distribution(pseudo_random_generator) << std::endl;
std::cout << float_distribution(pseudo_random_generator) << std::endl;
std::cout << (rigged_dice(pseudo_random_generator) + 1) << std::endl;
return 0;
}
在此示例中,仅定义了一个生成器。它随后用于在三个不同的分布中生成随机值。rigged_dice
分布将生成 0 到 5 之间的值,但几乎总是生成 5
,因为生成 5
的机会是 100 / 105
。