📅  最后修改于: 2023-12-03 15:13:59.795000             🧑  作者: Mango
在C++中,使用rand()函数可以生成伪随机数。但是,使用这个函数需要注意下面两个问题:
rand()函数生成的是一个大于等于0,小于RAND_MAX的整数。如果要生成一个a到b之间的整数,需要进行一些计算。
每次程序运行时,使用rand()函数所生成的随机数序列都是一样的。为了避免这个问题,需要使用srand()函数对其进行初始化。
下面是在C++中生成a到b之间的随机数的方法:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
// 初始化随机数生成器
srand(time(0));
int a = 1, b = 10;
int random_num = a + rand() % (b - a + 1);
cout << "随机数:" << random_num << endl;
return 0;
}
代码解释:
- 使用srand(time(0))初始化了随机数生成器,time(0)函数返回一个表示当前时间的值,这样保证每次程序运行时都使用不同的随机数序列。
- 需要生成a到b之间的随机数,先计算出b-a+1,然后使用rand() % (b - a + 1)生成0到b-a之间的随机数,再加上a,即可得到a到b之间的随机数。
- 这段代码的输出结果为一个1到10之间的随机整数。
总结:
在C++中,可以使用rand()函数生成随机数。使用时需要注意序列的初始化,以及生成指定范围随机数的计算方法。