C++ 生成伪随机数
示例
伪随机数生成器生成可以基于先前生成的值进行猜测的值。换句话说:它是确定性的。在需要真实随机数的情况下,请勿使用伪随机数生成器。
#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]范围内的整数。然后计算每个结果产生了多少次。
的template参数std::uniform_int_distribution<T>指定应生成的整数类型。使用std::uniform_real_distribution<T>生成浮点或双精度。