c++ - 随机数生成器种子和状态之间有什么区别?

标签 c++ random

我看到一个 C++ 程序接受种子和状态来设置 std::default_random_engine,它是 std::linear_congruential_engine 的类型定义(在我的系统上至少)。 seed() 方法用于设置状态的初始种子和 operator>>

我知道播种随机数生成器 (RNG) 的原理,但可以将其与其状态互换使用。

最佳答案

种子是用于初始化生成器的值,状态是每次调用生成随机数后生成器的当前状态。对于非常简单的随机数生成器,例如线性同余生成器,种子和状态是相同的东西(或者至少,存储在同一个变量中),但它们当然不一定是。

关于c++ - 随机数生成器种子和状态之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45743721/

相关文章:

c++ - 指针和指针数组的区别

c++ - 重置线程事件 - C++

c++ - 尝试使用 random_device、mt19937 和uniform_int_distribution 时出现大量编译器错误

random - 在偏向中间的范围内生成随机无符号整数

java - 生成安全随机位

c++ - wstringstream 的问题

c++ - Hook dll中的特定函数

c++ - C++ 宏中的随机数

php - 大于 x 小于 y php 不工作

c++ - 多个多态对象序列化/反序列化模式