C++中的随机数库
提供了各种不同分布的随机数生成器。你可以使用不同的分布对象来生成满足特定分布的随机数。以下是一些常见的随机数分布及其实现方法:
- 均匀分布(Uniform Distribution):
#include#include int main() { std::random_device rd; std::mt19937 gen(rd()); std::uniform_int_distribution<> dis(1, 6); // 生成1到6之间的均匀分布的随机数 for (int i = 0; i < 10; i++) { std::cout << dis(gen) << " "; } return 0; }
- 正态分布(Normal Distribution):
#include#include int main() { std::random_device rd; std::mt19937 gen(rd()); std::normal_distribution<> dis(0.0, 1.0); // 均值为0,标准差为1的正态分布 for (int i = 0; i < 10; i++) { std::cout << dis(gen) << " "; } return 0; }
- 伯努利分布(Bernoulli Distribution):
#include
#include
int main() {
std::random_device rd;
std::mt19937 gen(rd());
std::bernoulli_distribution dis(0.5); // 以0.5的概率生成true,以0.5的概率生成false
for (int i = 0; i < 10; i++) {
std::cout << dis(gen) << " ";
}
return 0;
}
除了上述示例中的分布类型外,
库还提供了其他分布类型,例如泊松分布(Poisson Distribution)、指数分布(Exponential Distribution)等。你可以根据自己的需求选择合适的分布类型来生成随机数。