使用生成器進行多個分發

隨機數生成器可以(並且應該)用於多個分發。

#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