定义在头文件random中,通过随机数引擎类(生成随机unsigned整数序列)和随机数分布类(使用引擎返回服从特定概率分布的随机数)解决问题。
随机数引擎操作
Engine e; | 默认构造函数;使用该引擎类型默认的种子 |
Engine e(s); | 使用整形值s作为种子 |
e.seed(s) | 使用种子s重置引擎的状态 |
e.min() e.max() | 此引擎可生成的最小值和最大值 |
Engine::result_type | 此引擎生成的unsigned整形类型 |
e.discard(u) | 将引擎推进u步;u的类型为unsigned long long |
一个给定的随机数发生器一直会生成相同的随机数序列。一个函数如果定义了局部的随机数发生器,应该将其(包括引擎和分布对象)定义为static的。否则调用函数都会生成相同的序列。
分布类型的操作
Dist d; | 默认构造函数;使d准备好被使用。 |
d(e) | 用相同的e连续调用d的话,会根据d的分布式类型生成一个随机数序列;e是一个随机数引擎对象 |
d.min() d.max() | 返回d(e)能生成的最小值和最大值 |
d.reset() | 重建d的状态,使得随后对d的使用不依赖于d已经生成的值 |