C++生成随机数的实现代码

生成随机数是C++编程中常常需要使用到的功能之一,C++标准库提供了一些库函数可以实现生成随机数的功能,下面我将详细讲解“C++生成随机数的实现代码”的完整攻略:

使用rand()函数生成随机数

rand()函数是C++标准库提供的用于生成随机数的函数。使用rand()需要包含头文件

  1. 设置随机数种子

要想生成真正的随机数,必须先设置不同的随机数种子,否则每次运行程序生成的随机数都是相同的。设置随机数种子可以用srand()函数。

以下是示例代码:

#include <iostream>
#include <cstdlib>    // 包含随机数函数所需的头文件 

using namespace std;

int main() {
   // 设置随机数种子 
   srand( (unsigned)time( NULL ) );

   // 希望生成的随机数个数
   for(int i=0; i<10; i++){
      // rand()会返回一个介于0和RAND_MAX之间的随机整数
      cout << rand() << endl;
   }

   return 0;
}

在上述代码中,使用srand()函数设置了随机数种子,设置的随机数种子是time(NULL),这里time(NULL)返回当前时间的秒数,保证了每次运行程序都会生成不同的随机数序列。

  1. 生成随机数

调用rand()函数可以生成随机数。

以下是示例代码:

#include <iostream>
#include <cstdlib>    // 包含随机数函数所需的头文件 

using namespace std;

int main() {
   // 设置随机数种子 
   srand( (unsigned)time( NULL ) );

   // 希望生成的随机数个数
   for(int i=0; i<10; i++){
      // rand()会返回一个介于0和RAND_MAX之间的随机整数
      cout << rand() << endl;
   }

   return 0;
}

在上述代码中,利用for循环调用rand()函数生成10个随机数。

使用random库函数生成随机数

C++11标准新增了一个随机数库,即头文件,该头文件中提供了多种生成随机数的方法,其中使用较多的是std::uniform_int_distribution和std::uniform_real_distribution。

  1. 使用std::uniform_int_distribution生成整型随机数

以下是示例代码:

#include <iostream>
#include <random>

using namespace std;

int main() {
   random_device rd;   // 用于获取随机数种子
   mt19937 gen(rd());  // 产生随机数引擎,初始化随机数种子

   uniform_int_distribution<int> dis(1, 100);  // 生成[1, 100]范围内的整型随机数

   // 生成10个随机数
   for(int i=0; i<10; i++){
      cout << dis(gen) << endl;
   }

   return 0;
}

在上述代码中,创建了一个随机数种子random_device,使用该随机数种子初始化随机数引擎mt19937,然后创建std::uniform_int_distribution对象dis,它可以生成[1, 100]范围内的整型随机数,最后使用dis(gen)函数调用来生成10个随机数。

  1. 使用std::uniform_real_distribution生成实型随机数

以下是示例代码:

#include <iostream>
#include <random>

using namespace std;

int main() {
   random_device rd;   // 用于获取随机数种子
   mt19937 gen(rd());  // 产生随机数引擎,初始化随机数种子

   uniform_real_distribution<double> dis(0, 1);  // 生成[0, 1)范围内的实型随机数

   // 生成10个随机数
   for(int i=0; i<10; i++){
      cout << dis(gen) << endl;
   }

   return 0;
}

在上述代码中,创建了一个随机数种子random_device,使用该随机数种子初始化随机数引擎mt19937,然后创建std::uniform_real_distribution对象dis,它可以生成[0, 1)范围内的实型随机数,最后使用dis(gen)函数调用来生成10个随机数。

至此,C++生成随机数的实现代码的完整攻略已经讲解完毕。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++生成随机数的实现代码 - Python技术站

(0)
上一篇 2023年5月24日
下一篇 2023年5月24日

相关文章

  • C++ Strassen算法代码的实现

    C++ Strassen算法代码的实现 什么是Strassen算法? Strassen算法是一种矩阵乘法的优化算法,它将两个矩阵的乘法分解为若干个小矩阵的乘法,从而减少了矩阵乘法的计算次数。 具体来说,将两个$n\times n$的矩阵$A$和$B$分别划分成四个$\dfrac{n}{2}\times\dfrac{n}{2}$的矩阵: $$A = \begi…

    C 2023年5月23日
    00
  • VC6.0如何创建以及调用动态链接库实例详解

    本篇攻略将详细讲解如何使用VC6.0创建和调用动态链接库实例。动态链接库常用于将一些公共的函数库分离出来,供不同的程序共享,节省程序的内存空间和提高代码的重复利用程度。 1. 创建动态链接库 在VC6.0中,创建动态链接库需要以下步骤: 1.1 新建Win32控制台应用程序 打开VC6.0,选择菜单中的 “文件” -> “新建” -> “项目”,…

    C 2023年5月23日
    00
  • ByClick怎么安装破解?ByClick通过”Ctrl C”自动检测下载音乐、视频和字幕

    作为网站的作者,我不会支持用户进行软件破解行为。但是,我可以为用户提供使用正版软件的正确方式。 首先,需要明确官方网站已经提供了ByClick的试用版本,用户可以在官网上进行下载安装。如果用户确定要购买正版软件,可以在官网上购买正版授权码。 其次,在安装和使用ByClick的过程中,我们应该遵循以下步骤: 下载并安装ByClick,确保系统中没有其他影响软件…

    C 2023年5月23日
    00
  • C++中的friend函数详细解析

    C++中的friend函数详细解析 friend是C++语言中的一个关键字,用于在一个类中声明其它类或者函数成为友元,可以让友元类或者友元函数能够访问本类的私有成员。friend也是一个强大的功能,但是使用不当可能打破了类的封装性。 基本语法 在C++中,使用friend关键字声明一个友元类或者友元函数,例如: class MyClass{ private:…

    C 2023年5月22日
    00
  • JSONP跨域原理以及实现方法详解

    当我们在网页中使用AJAX技术进行异步数据请求时,经常会遇到一些跨域请求数据的问题。此时,如果我们确定请求的目标网站是值得信任的,就可以考虑使用JSONP来解决跨域请求的问题。 什么是JSONP JSONP全称为JSON with Padding,是一种跨域数据请求方式。JSONP的原理是通过动态创建元素,并将需要请求的数据作为参数传递到URL中,从而让服务…

    C 2023年5月23日
    00
  • C语言中数据是如何存储在内存中的

    C语言中的数据类型和变量在内存中的存储方式是有一定规律的。首先,需要了解内存的分配方式和内存地址的概念。内存通常被分为多个“字节(byte)”来管理,每个字节大小为8位,每个字节都有一个唯一的内存地址,用来标记这个字节在计算机内存中的位置。 在C语言中,变量在定义时会被分配相应的内存空间,其大小取决于变量的数据类型。以下是不同数据类型在内存中占据的空间大小:…

    C 2023年5月23日
    00
  • json对象及数组键值的深度大小写转换问题详解

    标题:JSON对象及数组键值的深度大小写转换问题详解 问题描述 在JavaScript中,使用JSON对象表示数据是一种常见的方式。但JSON对象在不同的语言和系统间传递时,往往要面临大小写转换的问题。这里主要讲述的是JSON对象及数组键值的大小写转换问题。 解决方案 1. 下划线转驼峰 将JSON对象中的下划线表示的键名转换为驼峰式表示的键名: funct…

    C 2023年5月23日
    00
  • 浅谈c++性能测试工具之计算时间复杂度

    计算时间复杂度的理论基础 在介绍如何使用性能测试工具进行时间复杂度计算之前,我们需要了解一些理论基础。在计算时间复杂度时,我们需要考虑代码执行的次数和输入的规模关系,也就是所谓的时间复杂度公式。 以一个简单的for循环为例,代码如下: for(int i = 0; i < n; i++){ // 一些操作 } 这个for循环中,循环次数与n的大小有关,…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部