广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++产生随机数的方法有哪些
  • 689
分享到

C++产生随机数的方法有哪些

2023-07-05 11:07:45 689人浏览 薄情痞子
摘要

这篇文章主要介绍“c++产生随机数的方法有哪些”,在日常操作中,相信很多人在C++产生随机数的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++产生随机数的方法有哪些”的疑惑有所帮助!接下来,请跟

这篇文章主要介绍“c++产生随机数的方法有哪些”,在日常操作中,相信很多人在C++产生随机数的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++产生随机数的方法有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

使用cstdlib库

C++11之前,C和C++都用相同的方法来产生随机数(伪随机数),即rand()函数,用法如下:

1)使用srand()撒一个种子

功能:初始化随机数发生器

用法:void srand(unsigned int seed)

2)使用rand()产生随机数

功能:随机数发生器

用法:int rand(void)

3)控制随机数范围

要取得 [a,b) 的随机整数,使用 (rand() % (b-a))+ a;

要取得 [a,b] 的随机整数,使用 (rand() % (b-a+1))+ a;

要取得 (a,b] 的随机整数,使用 (rand() % (b-a))+ a + 1;

** 参考:C++ rand 与 srand 的用法

4)示例代码

#include <iOStream>#include <ctime>#include <cstdlib> int getRand(int min, int max); int main() {     srand(time(0));     for (int i=0; i<10; i++) {        int r = getRand(2,20);        std::cout << r << std::endl;    }     return 0;} // 左闭右闭区间int getRand(int min, int max) {    return ( rand() % (max - min + 1) ) + min ;}

使用random库:c++11 random library

C++11之前,无论是C,还是C++都使用相同方式的来生成随机数,而在C++11中提供了随机数库,包括随机数引擎类、随机数分布类,简介如下:

随机数引擎类

一般使用 default_random_engine 类,产生随机非负数(不推荐直接使用)

直接使用时:

#include <iostream>#include <ctime>#include <random> int main() {     std::default_random_engine e;    e.seed(time(0));     for (int i=0; i<10; i++) {        std::cout << e() << std::endl;    }     return 0;}

输出结果:

16807
282475249
1622650073
984943658
1144108930
470211272
101027544
1457850878
1458777923
2007237709

随机数分布类

unifORM_int_distribution:产生均匀分布的整数

示例代码:

#include <iostream>#include <ctime>#include <random> int main() {     std::default_random_engine e;    std::uniform_int_distribution<int> u(2,20); // 左闭右闭区间    e.seed(time(0));     for (int i=0; i<10; i++) {        std::cout << u(e) << std::endl;    }     return 0;}

输出结果:

4
5
16
17
15
17
6
10
13
13

uniform_real_distribution:产生均匀分布的实数
#include <iostream>#include <ctime>#include <random> int main() {     std::default_random_engine e;    std::uniform_real_distribution<double> u(1.5,19.5); // 左闭右闭区间    e.seed(time(0));     for (int i=0; i<10; i++) {        std::cout << u(e) << std::endl;    }     return 0;}

输出结果:

9673
2.29179
9.82668
9.82764
10.2394
13.8324
2.95336
9.72177
16.5145
12.1421

normal_distribution:产生正态分布的实数

示例代码:

#include <iostream>#include <ctime>#include <random> int main() {     std::default_random_engine e;    std::normal_distribution<double> u(0,1); // 均值为0,标准差为1    e.seed(time(0));     for (int i=0; i<10; i++) {        std::cout << u(e) << std::endl;    }     return 0;}

输出结果:

0.390995
-0.680137
-1.02953
-0.53243
0.375886
-0.19804
-0.796159
0.837714
0.899632
2.06609

bernoulli_distribution:生成二项分布的布尔值
#include <iostream>#include <ctime>#include <random> int main() {     std::default_random_engine e;    std::bernoulli_distribution u(0.8); // 生成1的概率为0.8    e.seed(time(0));     for (int i=0; i<10; i++) {        std::cout << u(e) << std::endl;    }     return 0;}

输出结果:

1
0
1
1
1
1
1
1
1
1

到此,关于“C++产生随机数的方法有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: C++产生随机数的方法有哪些

本文链接: https://www.lsjlt.com/news/351172.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++产生随机数的方法有哪些
    这篇文章主要介绍“C++产生随机数的方法有哪些”,在日常操作中,相信很多人在C++产生随机数的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++产生随机数的方法有哪些”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-05
  • C++产生随机数的几种方法小结
    目录使用cstdlib库1)使用srand()撒一个种子2)使用rand()产生随机数3)控制随机数范围4)示例代码使用random库:c++11 random library随机数...
    99+
    2023-03-09
    C++产生随机数 C++ 随机数
  • JS生成随机数的方法有哪些
    JS生成随机数的方法有以下几种:1. Math.random():返回一个0到1之间的随机浮点数。```javascriptvar ...
    99+
    2023-09-12
    JS
  • java生成随机数的方法有哪些
    Java生成随机数的方法有以下几种:1. 使用`java.util.Random`类:可以使用`nextInt()`方法生成一个随机...
    99+
    2023-08-31
    java
  • numpy产生随机数的几种方法
    目录1.np.random.rand 生成一个0到1之间的均匀分布2.np.random.randn 返回一个符合标准正态分布的数组。3.np.random.randint返回一定范...
    99+
    2023-02-10
    numpy 产生随机数 numpy 生随机数
  • java中生成随机数的方法有哪些
    这篇文章将为大家详细讲解有关java中生成随机数的方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。生成随机数的几种方法:1. 使用Math.random()生成随机数直接贴几个小方法private...
    99+
    2023-05-31
    java
  • java随机生成数字的方法有哪些
    Java随机生成数字的方法有以下几种:1. 使用java.util.Random类:可以使用Random类的nextInt()方法生...
    99+
    2023-08-09
    java
  • python随机生成数字的方法有哪些
    Python中生成随机数字的方法有以下几种:1. 使用random模块的random()函数:生成0到1之间的随机浮点数。```pythonimport randomnum = random.random() # 生成一个0到1之间的随...
    99+
    2023-08-11
    python
  • python生成随机浮点数的方法有哪些
    Python生成随机浮点数的方法有以下几种:1. 使用random模块的random()函数:```pythonimport ran...
    99+
    2023-09-06
    python
  • shell产生随机数七种方法的实现
    一、问题 Shell下有时需要使用随机数,在此总结产生随机数的方法。计算机产生的的只是“伪随机数”,不会产生绝对的随机数(是一种理想随机数)。伪随机数在大量重现时也并不一定保持唯一,但一个好的伪随机产生算法将可以产生一...
    99+
    2022-06-04
    shell 随机数
  • java中产生随机不重复数的方法
    java中产生随机不重复数的方法:根据min和max,生成n个不重复的随机数。(注:范围[min,max],n ...
    99+
    2021-01-15
    java
  • JAVA随机数的方法有哪些
    本篇内容介绍了“JAVA随机数的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!方法1://利用固定数组长度n,通过n的变化来实现。...
    99+
    2023-06-17
  • 利用Java实现生成随机数的方法有哪些
    利用Java实现生成随机数的方法有哪些?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型...
    99+
    2023-05-31
    java 随机数生成 ava
  • php产生随机数的两种方法实例代码 输出随机IP
    分享下php生成随机数的三种方法,生成1-10之间的不重复随机数,php生成不重复随机数的例子,需要的朋友参考下。 如何用php生成1-10之间的不重复随机数? 例1,使用shuff...
    99+
    2022-11-21
    php 随机数
  • Linux系统生成随机密码的方法有哪些
    本篇内容介绍了“Linux系统生成随机密码的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. ...
    99+
    2022-10-19
  • PHP中利用rand()函数产生一个随机数的方法
    这篇文章主要介绍了PHP中利用rand()函数产生一个随机数的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。php的框架有哪些php的框架:1、Laravel,Larav...
    99+
    2023-06-14
  • oracle产生事务的方法有哪些
    这篇文章主要介绍“oracle产生事务的方法有哪些”,在日常操作中,相信很多人在oracle产生事务的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”oracle产生...
    99+
    2022-10-18
  • linux shell实现随机数的方法有哪些
    这篇文章主要介绍“linux shell实现随机数的方法有哪些”,在日常操作中,相信很多人在linux shell实现随机数的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux shell实现...
    99+
    2023-06-09
  • 实现MySQL产生随机数并连接字符串的方法
    这篇文章主要介绍了实现MySQL产生随机数并连接字符串的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。用到的方法:concat(&...
    99+
    2022-10-18
  • java随机数生成的方法
    本文小编为大家详细介绍“java随机数生成的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“java随机数生成的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。本教程操作环境:windows7系统、java...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作