21xrx.com
2024-11-05 14:44:01 Tuesday
登录
文章检索 我的文章 写文章
C++中如何生成随机数
2023-07-12 03:03:32 深夜i     --     --
C++ 生成 随机数

C++中生成随机数是常用的操作之一,它可以帮助我们在程序中模拟出一些具有不确定性的变量或行为。在C++中,有多种方式可以生成随机数,下面我们来一一介绍。

1. rand()函数

rand()是C++标准库中提供的生成随机数的函数,它的实现基于线性同余生成器,可以生成一个[0,RAND_MAX]之间的整数。

具体使用方法如下:


#include <cstdlib>

#include <ctime>

//加上头文件

int main() {

  srand((unsigned)time(0)); //随机数种子,一般以时间为种子

  int randomNumber = rand(); //生成一个随机数

  return 0;

}

2. C++11引入的随机数库

C++11中加入了 库,该库中提供了更强大的随机数生成工具,可以生成各种分布下的随机数,使用起来更加灵活。

下面展示一个生成[1,6]之间的均匀分布整数的例子:


#include <random>

#include <chrono>

int main() {

  unsigned seed = std::chrono::system_clock::now().time_since_epoch().count(); //获取当前时间作为种子

  std::mt19937 generator(seed); //定义一个Mersenne Twister引擎

  std::uniform_int_distribution<int> dis(1, 6); //定义一个均匀分布

  int randomNumber = dis(generator); //生成一个随机数

  return 0;

}

需要注意的是, 库中提供了多种随机数引擎和分布,需要根据需要选择合适的。

除了上述两种方法外,C++中还有其他第三方库可以用于生成随机数,如Boost库中的 模块等。总之,选择何种方法生成随机数,取决于具体需求,选择适合的方法可以提高程序的效率和准确性。

  
  

评论区

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