随机数

当种子相同的时候,生成的随机数序列也是相同的。因此需要随机数种子,一般用time(0)作为随机数种子。

一个常用的随机数引擎是std::mt19937,c++默认的default_random_engine就是这个。

time(ptr),ptr指向用于写入时间的数据结构。

但大部分情况下,我们希望生成的随机数与engine生成的分布和范围不一样。

而distribution就是将一个数转换为特定分布和范围内的随机数。

一般是调用distribution(engine)来获取随机数。

而通过把随机种子定下来,我们也可以在多次调试过程中获得一个相同的随机数序列。

而如果有一个局部的引擎或分布,我们应该让其变为static的,否则每次调用的时候会生成相同的序列。

分布

分布都是模板,接受一个模板参数表示生成的类型。不填这个模板参数代表使用默认类型。

下面是各种各样的引擎和分布。

引擎

分布


随机数
https://lhish.github.io/project/hide/随机数/
作者
lhy
发布于
2024年6月30日
许可协议