C++学习记录:rand()函数
rand()函数的用法如下:
不同于MATLAB,C++中的rand()不需要输入任何参数,使用它生成的随机数的范围为0~最大随机数。其中,最大随机数指的是一个固定的大整数。(注意,这里生成的随机数是一个整数);
如果要产生一个a~b之间的随机整数,可采用如下公式:
rand() % (b-a+1)+ a
例如,现在想要产生一个0~99之间的整数,表达式为:
int num = rand() % 100;
那如果我们想得到一个小数该怎么办呢?
若要产生0~1之间“随机到十分位”(比如0.1,0.2等等)的小数,则可以先产生0~10的整数,然后除以10即可;
若要产生0~1之间“随机到百分位”(比如0.01,0.66等等)的小数,则可以先产生0~100的整数,然后除以100即可。
其它情况依此类推。
- 会发现每次程序运行的时候rand()产生的随机数与上一次是相同的,这样做是为了便于程序的调试。
如果想要要每次产生不同的随机数,则可以使用srand(seed)函数产生随机化种子,seed不同,产生的随机数就不同,一般可以用time(0)作seed,即srand(time(0)),这样就可以使每次程序运行时生成不同的随机数。(注意,time(0)指的是获取当前时间),使用时需包含time.h头文件。