有时候,我们需要随机产生一个在某范围的数,C/C++提供了一个库函数rand()来产生随机数。
函数原型:int rand(void);
功能:返回一个[0,RAND_MAX]间的随机整数。其中RAND_MAX是定义在stdlib.h头文件中的一个常量。
注意:rand()函数包含在头文件stdlib.h中,要使用它必须用#include引入该头文件;
计算机实际上并没有真正做到产生一个随机数,只是在一串预先定义好的数据中选择一个返回给函数。
那么,如何得到一个在a到b的整数呢?有两种方法:
法一:
公式:a+rand()%(b-a+1)
示例:
n=1000+rand()%9000;//随机生成一个四位数返回给n。a+rand()%(b-a+1),四位数即1000-9999,此时a=1000,b=9999
法二:
公式:a+rand()*(b-a+1)/RAND_MAX
示例:
n=+rand()*/RAND_MAX;//随机生成一个四位数返回给n。a+rand()*(b-a+1)/RAND_MAX,四位数即1000-9999,此时a=1000,b=9999
当要产生多个随机数时,rand()会重复调用产生相同的数字序列。如果想要每次执行产生的随机数不同,就需要进行随机初始化。因此引入srand()函数。
函数原型:void srand(unsigned s