我知道是伪随机数生成啦
可以用 srand(time(0))
和 rand()
函数生成伪随机数。然而,这个方法生成的随机数效果不是很好,也没法指定生成范围。
下面的方法可以生成指定范围的随机数。如果修改分布,还可以得到符合特定分布的随机数。
mt19937
c++11 加入。
定义一个名叫 rd
的随机数生成器(括号内为种子)。
1 | mt19937 rd(std::chrono::system_clock::now().time_since_epoch().count()); |
uniform_int_distribution
定义一个名叫 rand
的整型随机分布(括号内为上下界)。
1 | uniform_int_distribution<int> rand(MN,MX); |
- 实数随机分布为
uniform_real_distribution
。
- 不知道尖括号内不填对应类型会发生什么。
- 存在正态分布等其他分布,请百度。
生成固定范围的随机整数
假设定义了如上定义的 rd
和
rand
,使用方法为:
1 | rand(rd) |