rand()函数
rand() 函数原型是int rand(void),它会返回一个从0到RAND_MAX的整数(RAND_MAX是 C 语言标准库 中定义的一个宏 0x7fff 即32767)
但是仅仅用rand()返回的结果是不变的,因为rand()函数是根据一个数(我们称之为种子)通过固定的公式计算而来的,但是计算机开机后,这个种子的值是定了的,所以结果不变
C提供了 srand()函数,它的原型是void srand( int a) 功能是初始化rand()函数的初始值
但是对于种子a,我们不可能每产生一次随机数,就手动输入一次a吧
所以我们就以计算机的时间作为种子,那么种子就会自己变了( time()函数见下方讲解 )
#include
using namespacestd;intmain()
{
srand(time(NULL));//time(NULL)即为获取系统时间
cout << rand() <
}
那如何生成一定范围 内的随机数呢,很容易想到用“%”和“+”即可实现
因为 0 <= rand()%(n-m+1) <= n-m
所以 m <= rand()%(n-m+1)+m <= n
#include
using namespacestd;intmain()
{intn, m;
cin>> m >>n;
srand(time(NULL));
cout<< rand() % (n - m + 1) + m &