C++標準庫中的隨機函數包括隨機數生成器和分布器。隨機數生成器負責產生偽隨機數序列,而分布器則負責將這些隨機數按照特定的分布進行轉換。
C++標準庫中的隨機函數可以實現均勻分布,通過使用std::uniform_real_distribution或std::uniform_int_distribution類可以生成均勻分布的隨機數序列。這兩個類分別用于生成均勻分布的實數和整數。
以下是一個使用std::uniform_real_distribution類生成均勻分布實數的示例:
#include <iostream>
#include <random>
int main() {
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_real_distribution<> dis(0.0, 1.0);
for (int i = 0; i < 10; ++i) {
std::cout << dis(gen) << std::endl;
}
return 0;
}
在上面的示例中,我們使用std::random_device生成種子,然后使用std::mt19937作為隨機數生成器,最后使用std::uniform_real_distribution生成0到1之間的均勻分布的實數。