📜  c++ 在两个值之间随机 - C++ (1)

📅  最后修改于: 2023-12-03 15:13:59.795000             🧑  作者: Mango

在C++中在两个值之间生成随机数

在C++中,使用rand()函数可以生成伪随机数。但是,使用这个函数需要注意下面两个问题:

  1. rand()函数生成的是一个大于等于0,小于RAND_MAX的整数。如果要生成一个a到b之间的整数,需要进行一些计算。

  2. 每次程序运行时,使用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()函数生成随机数。使用时需要注意序列的初始化,以及生成指定范围随机数的计算方法。