本文内容来源于网络。
首先介绍一下要用到的头文件 : (.h结尾为C头文件,无后缀为C++头文件)
stdlib.h / cstdlib : 包含随机数种子设置,随机数发生器.
time.h / ctime : 包含时间函数
首先介绍函数:
void srand(unsigned seed); 设置随机数种子为参数中的seed.
int rand(); 返回一个随机数,在同一个随机序列下依次返回序列中的每一个数.
time_t time(time_t *); 返回从1970年1月1日0时0分0秒到现在的秒数.
为了保证随机性,我们一般以time函数的返回值作为随机数种子,这样可以保证每次出现的随机序列是不同的.所以通常用
srand( (unsigned) time(NULL) );
来设置随机数种子.但是time函数是以秒为单位的,所以在一秒的时间内如果两次调用srand会使随机数序列相同,导致输出相同.所以建议把srand放在所有操作之前,绝对不要放在循环中,否则以计算机的速度会在很短的时间内调用到多次srand,导致重复序列一直出现.
在设置完随机数种子之后就可以在程序中调用rand()来生成随机数了.如果要生成[a,b]之间的随机数就用rand() % (b - a + 1) + a来生成.
//随机数生成示例程序
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand( (unsigned) time(NULL) ); //设置随机数种子为当前时间
for(int i = 1; i <= 20; i++)
cout << rand() % 100 + 1 << endl; //生成20个1-100间的随机数
return 0;
}