2017-08-27 71 views
1

samples for PCG他們唯一的種子,我認爲最好/最佳做法的一種方式:如何種子pcg隨機數發生器?

pcg32 rng(pcg_extras::seed_seq_from<std::random_device>{}); 

// Seed with a real random value, if available 
pcg_extras::seed_seq_from<std::random_device> seed_source; 

// Make a random number engine 
pcg32 rng(seed_source); 

但是我的機器上運行這只是產生每一次相同的種子。如果我只是輸入一些整數與我自己一起播種,那就沒有比這更好的了。如果以這種方式嘗試,種子會是什麼樣的方法不起作用?

回答

1

pcg_extras::seed_seq_from應該是推薦的方式,但它會將實際的種子代生成委派給模板參數中指定的生成器。

MinGW的破壞實施std::random_device。所以在這個時候,如果你想瞄準MinGW,你不能使用std::random_device

一些潛在的替代品:

  • boost::random_device
  • randutils,由PCG的作者,ME奧尼爾
  • seed11::seed_device,落更換爲std::random_device(免責聲明:這是我自己的圖書館)

有關播種this blog post by M.E. O'Neill的更多信息。