21xrx.com
2024-11-22 08:07:14 Friday
登录
文章检索 我的文章 写文章
C++如何生成随机数
2023-06-24 20:56:44 深夜i     --     --
C++ 生成 随机数 srand rand函数

在计算机编程中,随机数是非常重要的。它是在程序中生成不确定性的一种方法,而C++也提供了几种生成随机数的方法。本文将介绍C++如何生成随机数。

方法一:使用rand()函数生成随机数

C++中的rand()函数用于生成一个随机数。它的含义是:生成一个0至RAND_MAX(在stdlib.h头文件中定义)之间的随机整数。但这个数并不是真正的随机数,而是伪随机数。

例如,以下代码可以用rand()函数生成10个随机数:

#include

#include

#include

using namespace std;

int main()

{

  srand(time(NULL)); //生成随机数种子

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

  {

    int num = rand();

    cout< <

  }

  return 0;

}

rand()函数的随机性源于它的种子。如果你不在程序中调用srand()函数,rand()函数将使用默认的种子值:1。因此,在生成随机数之前,您应该先使用srand()函数设置一个随机数种子。

在上面的代码中,我们调用srand(time(NULL))使用当前系统时间作为生成随机数的种子。这样可以确保每次运行程序时的随机数都是不同的。

方法二:使用random_shuffle()函数生成随机数

除了使用rand()函数外,C++还提供了其他生成随机数的函数。例如,random_shuffle()函数可以随机地打乱容器(数组、向量等)中元素的顺序。

以下代码演示了如何在vector中生成随机数并使用random_shuffle()函数打乱它们的顺序:

#include

#include

#include

#include

#include

using namespace std;

int main()

{

  srand(time(NULL)); //生成随机数种子

  vector nums = 5;

  random_shuffle(nums.begin(), nums.end());

  for(int num: nums)

    cout< <

  return 0;

}

在上面的代码中,我们首先使用srand()函数设置随机数种子,然后用vector来存储需要随机排序的数字,并使用random_shuffle()函数来打乱它们的顺序。

总结

本文介绍了C++中生成随机数的两种方法:使用rand()函数和使用random_shuffle()函数。当我们需要在程序中引入不确定性时,使用这些函数是非常有用的。但需要注意的是,这些函数只能生成伪随机数,因此在一些安全性比较高的应用程序中,我们需要使用更加复杂的加密算法来生成随机数。

  
  

评论区

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