生成偽隨機數

偽隨機數生成器生成可以基於先前生成的值猜測的值。換句話說:它是確定性的。在需要真正隨機數的情況下,請勿使用偽隨機數生成器。

#include <iostream>
#include <random>

int main()
{
   std::default_random_engine pseudo_random_generator;
   std::uniform_int_distribution<int> int_distribution(0, 9);
   
   int actual_distribution[10] = {0,0,0,0,0,0,0,0,0,0};
   
   for(int i = 0; i < 10000; i++) {
       int result = int_distribution(pseudo_random_generator);
       actual_distribution[result]++;
   }

   for(int i = 0; i <= 9; i++) {
       std::cout << actual_distribution[i] << " ";
   }
   
   return 0;
}

此程式碼建立一個隨機數生成器,以及一個生成範圍[0,9]中具有相同似然性的整數的分佈。然後計算每個結果生成的次數。

std::uniform_int_distribution<T> 的模板引數指定應生成的整數型別。使用 std::uniform_real_distribution<T> 生成浮動或雙打。