21xrx.com
2024-11-22 05:55:58 Friday
登录
文章检索 我的文章 写文章
C++随机数生成函数
2023-07-04 12:08:02 深夜i     --     --
C++ 随机数 生成函数 伪随机数发生器 种子值

C++是一门非常强大的计算机程序设计语言,它可以帮助程序员们开发出各种先进的应用程序。而在开发过程中,随机数生成是一项非常基础和常见的操作。本文将介绍C++中的随机数生成函数,帮助读者更好地理解和使用它们。

随机数在计算机中的应用很广泛,比如用于生成随机密码、加密算法、模拟实验、游戏开发等等。C++提供了多种方法来生成随机数,下面介绍其中最常用的几种方法:

1. 使用rand()函数

rand()函数是C++中最常用的生成随机数的函数。它可以在0到RAND_MAX之间随机生成一个整数,其中RAND_MAX是C++中定义的最大随机数值。使用rand()函数需要包含头文件stdlib.h。

生成0~RAND_MAX之间的随机整数代码如下:


#include <iostream>

#include <cstdlib> // 包含(rand函数和srand函数)

#include <ctime> // 包含time函数

using namespace std;

int main()

{

  srand(time(NULL)); // 初始化随机数种子为当前时间

  int random_num = rand();

  cout << "random number: " << random_num << endl;

  return 0;

}

2. 使用时间作为随机数种子来生成随机数

使用时间来作为随机数生成的种子,可以使得每次生成的随机数都不同,具有真正的随机性。在C++中,可以使用time()函数获取当前系统时间,并将其作为srand()函数的参数,来初始化随机数种子。

示例代码如下:


#include <iostream>

#include <cstdlib> // 包含(rand函数和srand函数)

#include <ctime> // 包含time函数

using namespace std;

int main()

{

  srand(time(NULL)); // 初始化随机数种子为当前时间

  int random_num = rand();

  cout << "random number: " << random_num << endl;

  return 0;

}

3. 使用C++11提供的随机数库

C++11提供了一个更加现代化和安全的随机数库,它包含在头文件 中。这个库提供了多种随机数生成器和分布器,可以生成不同类型的随机数。其中最常用的是生成平均分布的随机数。

示例代码如下:


#include <iostream>

#include <random> // 包含(random数库)

using namespace std;

int main()

{

  // 创建随机数生成器

  random_device rd;

  mt19937 gen(rd());

  // 创建分布器

  uniform_int_distribution<int> dis(0, 100);

  // 生成随机数

  int random_num = dis(gen);

  cout << "random number: " << random_num << endl;

  return 0;

}

总结:

C++提供了多种生成随机数的方法,可以根据不同的需求选择不同的方法。需要注意的是,在生成随机数时应该提供一个随机数种子,否则可能会生成重复的随机数。另外,在使用rand()函数生成随机数时,不同的编译器可能会实现不同,生成的随机数可能会有差异。因此,建议使用更加现代化、安全和可控的随机数库来生成随机数。

  
  

评论区

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