如果你现在急着生成一个范围在[a,b]之间的随机整数,只需要默写
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main()
{
srand(time(0));
int x = rand( )%(b-a+1)+a; //例如rand()%5+1可以产生一个[1,5] 的随机整数
cout << x;
}
例如,生成范围在1-20的随机数:
//输出1-20的随机整数
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main()
{
srand(time(0));
int a = rand() % 20 + 1;
cout << a;
}
如果你想进一步了解一下为什么,下面这里是扩展读物:
我们生成随机数绕不开两个:
①rand( )函数,需要#include<cstdlib>
②srand(time(0))随机种子,即#include<ctime>
①在使用随机函数rand()前,需要#include<cstdlib>。
rand( )函数返回的值是一个大于等于0且小于等于RAND MAX的随机整数。
这个RAND MAX它的值与操作系统、编译器等有关,导致程序每次运行,每次产生的随机数是相同的。例如
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{int a;
a=rand();
cout<<a;
return 0:}
此程序每次运行,运行结果是不变的,每次产生的随机数是相同的。
若需要每次运行,得到不同的随机数:
②我们需要加上srand(time(0))
srand(time(0))设置当前的系统时间值为随机种子,由于系统时间是变化的,那么种子也是变化的。同时,还需要加上包含ctime头文件,即#include<ctime>。