21xrx.com
2024-12-22 21:16:53 Sunday
登录
文章检索 我的文章 写文章
如何在C++中生成指定范围内的随机数?
2023-07-04 20:41:33 深夜i     --     --
C++ 随机数 生成 指定范围 rand()函数

在C++中,生成指定范围内的随机数可以使用标准库中的随机数生成函数。

首先,我们需要包含随机数生成的头文件“ ”。然后,我们可以使用“std::uniform_int_distribution”或“std::uniform_real_distribution”类来生成整数或浮点数类型的随机数。这两个类都提供了构造函数,用于指定随机数生成的范围。

例如,要生成范围在1到10之间的整数,可以按照以下方式编写代码:


#include <random>

#include <iostream>

int main()

{

  std::random_device rd;

  std::mt19937 gen(rd());

  std::uniform_int_distribution<> dis(1, 10);

  int rand_num = dis(gen);

  std::cout << "The random number generated is " << rand_num << std::endl;

  return 0;

}

“std::random_device”是一个硬件随机数生成器,在构造“std::mt19937”引擎时使用。引擎用于预处理随机数种子,并将其转换为随机数分布。

“dis”对象使用“<>”语法指定范围,即1到10之间的整数(包括1和10)。最后,我们使用“dis”对象和“gen”引擎生成一个随机数并将其存储在“rand_num”变量中,输出结果为:“The random number generated is”和该随机数。

类似地,如果要生成浮点数类型的随机数,则可以使用“std::uniform_real_distribution”类。其构造函数需要两个参数,用于指定随机数生成的范围。例如,要生成范围在0到1之间的浮点数,可以按照以下方式编写代码:


#include <random>

#include <iostream>

int main()

{

  std::random_device rd;

  std::mt19937 gen(rd());

  std::uniform_real_distribution<> dis(0, 1);

  double rand_num = dis(gen);

  std::cout << "The random number generated is " << rand_num << std::endl;

  return 0;

}

在这个例子中,我们使用“std::uniform_real_distribution”类来生成范围在0到1之间的随机浮点数。然后,我们使用“dis”对象和“gen”引擎生成一个随机数,并将其存储在“rand_num”变量中。最后,我们输出随机数,输出结果为:“The random number generated is”和该随机数。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复