1.1 底层原理与细节
伪随机数生成在游戏、仿真和加密中有广泛应用。C++11的<random>库取代了不可靠的rand(),提供了基于数学算法的随机数引擎(如std::mt19937,梅森旋转算法)和分布类。
-
引擎:
-
伪随机数生成器(如
std::mt19937,梅森旋转算法),可生成高质量随机序列。 -
非确定性引擎(如
std::random_device,依赖系统熵源,用于种子初始化)。 -
std::random_device rd; // 非确定性种子源 std::mt19937 gen(rd()); // 使用种子初始化Mersenne Twister引擎
-
-
分布:如
std::uniform_int_distribution,通过数学变换将引擎输出映射到均匀分布区-
std::uniform_int_distribution<int> dist(1, 6);// 1到6的均匀整数 -
std::normal_distribution<double> dist(0.0, 1.0);// 均值为0,标准差为1的正态分布 -
std::bernoulli_distribution dist(0.3);// 成功概率0.
-

最低0.47元/天 解锁文章
2592

被折叠的 条评论
为什么被折叠?



