C 11 引入了產生隨機數的新功能,旨在增強靈活性,性能和一致性。這些功能包括隨機數引擎和分佈,它們解決了 rand() 等傳統隨機數產生器的局限性。
引擎是隨機數產生的核心。它們產生偽隨機數序列並確保分佈均勻性。 C 11 提供了多種引擎選項,包括:
分佈描述所需的隨機數分佈。 C 11 包含用於產生的分佈:
要在C 11 中生成隨機數,請按照以下步驟操作:
#include <random> // Engine std::mt19937 rng(std::random_device()()); // Distributions std::uniform_int_distribution<uint32_t> uint_dist; std::normal_distribution<double> normal_dist(0.5, 0.2); // Generate random numbers while (true) { std::cout << uint_dist(rng) << " " << normal_dist(rng) << std::endl; }
均等可能結果確保每個數字在指定範圍內具有相同的生成機會,evitando在隨機數生成中存在偏差。適當的分佈(例如
C 11 中的隨機數產生支援並發。為了確保線程安全,請為每個線程分配自己的引擎以及唯一的種子或同步對引擎物件的存取。
以上是C 11 如何改進隨機數產生?的詳細內容。更多資訊請關注PHP中文網其他相關文章!