生成5-200之间的随机整数
C++中,标准库提供了一种伪随机数(pseudo-random number)生成器,可以达到随机获取某两个数之间的一个数的效果。
我们以随机获取5-200之间的一个整数为例。首先看完整代码。
1 |
|
在我的计算机上随机到的结果为:96,85,165,176,191,116,68,91,5,19。可以看出代码是没有问题的。
语法解析
首先,#include <cstdlib>
在头文件中引入了C++的标准库,之后才可以使用srand()以及rand()这两个函数。之后初始化最大值和最小值。
srand()函数用于设置种子(seed),种子可以简单理解为之后rand()所获得的随机数的最小值。而rand()所能获得的最大值为整型的最大值,rand() % (MAX - MIN)
将等概率得到一个0-195之间的数,因为求余运算使得这个数只能落在0-195之间。
最后,my_random = rand() % (MAX - MIN) + MIN;
将获得一个5-200之间的随机数。
扩展使用
同理,不论是想要获得怎样的随机数,只要首先将其转化为等价的0-N随机数获取,再进行结果值调整即可。例如,获得一个-50.0-50.0之间的随机一位小数,只要改动代码如下。
1 |
|