21xrx.com
2024-12-23 00:39:41 Monday
登录
文章检索 我的文章 写文章
如何在C++中生成随机数
2023-07-02 03:27:48 深夜i     --     --
C++ 随机数 生成 rand()函数 srand()函数

在C++编程中,生成随机数是一项非常常见的任务。随机数可以用于模拟和游戏等应用程序中,也可以用于实现密码学和安全性应用程序中。在下面的文章中,我们将介绍如何在C++中生成随机数。

C++中生成随机数的方法

C++提供了两种生成随机数的方法:使用rand()函数和使用C++11中的随机数库。这两种方法的用法如下。

使用rand()函数

rand()函数是C++中生成随机数的内置函数。这个函数可以返回一个介于0到RAND_MAX之间的随机整数。但是,这个函数并不是真正的随机数生成器,因为它只是生成一个伪随机数序列。所以,如果你想要生成更随机的数列,你需要先使用srand()函数来设置随机数种子。

以下是一个使用rand()函数生成随机数的例子:


#include <iostream>

#include <cstdlib>

#include <ctime>

int main()

{

  // 设置随机数生成种子

  srand(time(0));

  

  // 生成10个0到99之间的随机数

  for(int i = 0; i < 10; i++)

  {

    int randomNumber = rand() % 100;

    std::cout << randomNumber << std::endl;

  }

  return 0;

}

在上面的代码中,我们首先使用srand()函数设置随机数生成种子。然后,我们使用rand()函数生成10个0到99之间的随机数。

使用C++11中的随机数库

C++11中引入了一个新的随机数库,它提供了一个真正的随机数生成器。这个库的头文件是 。使用这个库可以生成高质量的随机数。

下面是一个使用C++11中的随机数库生成随机数的例子:


#include <iostream>

#include <random>

int main()

{

  // 创建一个随机数生成器

  std::random_device rd;

  std::mt19937 gen(rd());

  

  // 定义随机数分布

  std::uniform_int_distribution<> dis(0, 99);

  

  // 生成10个0到99之间的随机数

  for(int i = 0; i < 10; i++)

  {

    int randomNumber = dis(gen);

    std::cout << randomNumber << std::endl;

  }

  

  return 0;

}

在上面的代码中,我们首先使用std::random_device生成一个随机数种子。然后,我们使用std::mt19937定义一个随机数生成器。接下来,我们定义一个std::uniform_int_distribution,它可以生成0到99之间的随机整数分布。最后,我们使用dis(gen)函数生成10个0到99之间的随机数。

总结

在C++中生成随机数是一项非常基础的任务,我们可以使用rand()函数或者C++11中的std::random库来实现。这些代码可以满足大多数情况下生成随机数的需求。但是,如果你需要生成更高质量的随机数,你需要了解更多深入的知识。

  
  

评论区

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