C/C++_随机数生成函数详解
在计算机中我们想要生成的随机数都是伪随机数。由一个随机种子来进行周期控制,每个随机种子代表了一个周期的伪随机数,一般一个周期伪65535。
我们可以使用rand()函数来生成随机数。如果用户没有设定随机种子时,系统默认的随机种子为1。每个周期中的随机数字时相同的,想要每个周期不同的话,可以用srand()函数进行初始化。
srand()函数可以对rand()函数进行初始化。可以利用srand((unsigned int)(time(NULL)))的方法,产生不同的随机种子,因为每一个运行程序的时间是不同。
总体的逻辑过程如下:
- 给srand()提供一个种子,它是一个unsigned int类型。
- 调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到RAND_MAX之间)。
- 根据需要多次调用rand(),从而不间断地得到新的随机数。
- 无论什么时候,都可以给srand()提供一个新的种子,从而进一步"随机化"rand()的输出结果。
产生一定范围随机数的通用表达公式如下所示:
- 要取得 [a,b) 的随机整数,使用 (rand() % (b-a))+ a。
- 要取得 [a,b] 的随机整数,使用 (rand() % (b-a+1))+ a。
- 要取得 (a,b] 的随机整数,使用 (rand() % (b-a))+ a + 1。
- 通用公式: a + rand() % n;其中的 a 是起始值,n 是整数的范围。
- 要取得 0~1 之间的浮点数,可以使用 rand() / double(RAND_MAX)。RAND_MAX 的范围最少是在 32767 之间(int)。用 unsigned int 双字节是 65535,四字节是 4294967295 的整数范围。
C/C++_随机数生成函数详解相关推荐
- nbns协议_网络协议详解1 - NBNS
NetBIOS 简介 NetBIOS,Network Basic Input/Output System的缩写,一般指用于局域网通信的一套API,相关RFC文档包括 RFC 1001, RFC 100 ...
- php真随机数,php 的伪随机数与真随机数实例详解
这篇文章主要介绍了PHP的伪随机数与真随机数详解,本文首先讲解了真随机数和伪随机数的相关概念,并给出了比用mt_rand()函数产生更好的伪随机数的一段例子代码,需要的朋友可以参考下 首先需要声明的是 ...
- 读Java并发编程实践记录_原子性_锁_同步容器详解_任务执行
原子性: 单独的,不可分割的操作 不要使用过期状态值来决策当下的状态, 一定要先检查再执行(不检查, 将引发数据修改,丢失) 避免延迟初始化(懒加载: 先查看对象 == null, 然后new), 有 ...
- Linux驱动开发_设备文件系统详解
目录 何为设备管理器? Linux下dev的作用 Devfs sysfs kobject udev proc 何为设备管理器? 设备管理器就是负责管理这台电脑上的外设,当我们通过电脑提供的USB口插入 ...
- java data使用_@Data注解详解及使用方法-Fun言
@Data作用 去除Getter,Setter,equals,hashCode,toString方法,@Data注解在类上时,简化java代码编写,为该类提供读写属性.简单来说就是不用再手动添加get ...
- cass地籍参数设置快捷命令_南方cass详解+视频教程+插件汇总,小白快速上手!限时领取...
南方cass详解+视频教程+插件汇总,小白快速上手!限时领取 对于测量员来说,扎实的基本功尤为重要.测量员需要通过测量为工程建设提供数据和图纸,这样才能在工作中做到游刃有余. 今天给大家整理了南方Ca ...
- cglib动态代理jar包_代理模式详解:静态代理+JDK/CGLIB 动态代理实战
1. 代理模式 代理模式是一种比较好的理解的设计模式.简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标 ...
- tensorflow打印模型结构_社区分享 | 详解 TensorFlow 中 Placement 的最后一道防线 — Placer 算法...
本文作者王思宇,阿里巴巴算法专家,从事深度学习算法平台建设,TensorFlow 分布式架构设计与大规模分布式性能优化工作,开源 TensorFlow 项目 contributor. 本文转自:互联网 ...
- java velocity详解_[velocity] velocity详解
(1)为什么要使用模版语言? 在服务器端可以使用 Velocity处理模板和生成的动态内容(HTML.XML等).这和JSP技术的目标非常接近.但是,JSP模型可以毫无阻碍地访问底层的Servlet ...
最新文章
- jquery checkbox勾选/取消勾选的诡异问题
- ASP.NET 状态管理概述(MSDN)
- 数字电路技术基础(四)
- SAP Commerce Cloud deprecation机制
- 【Android基础】Fragment 详解之Fragment介绍
- 图表可视化seaborn风格和调色盘
- 多站点IIS的架设:主机头法
- zookeeper watcher机制
- DDD开发框架ABP之导航菜单
- java.util.concurrent.locks.LockSupport
- Word——如何统计除去标点符号的字数
- 分享文章到新浪微博(源码)
- 应聘软件测试岗位需要掌握的基础知识与技能(面试常考内容)
- 产品经理项目从0-1工作简要流程
- ​ 解决金仓数据库KingbaseES对pg模式的单机数据库插入数据时,出现日志打印的问题
- 扫码签到突破100000用户
- 强制退出Mac程序的六种方法
- Linux文件打包与解压缩
- 微信图片怎样在pc 端打开查看并导出
- 【stm32c8t6多个串口同时使用】
热门文章
- Part 4 描述性统计分析(占比 10%)——上
- 用devc++表白_想谈一场甜甜的姐弟恋了 | 肇院表白墙716期
- mybatis使用范例并且和spring进行整合
- PHPChina中的Yii2与Discuz会员打通(单点登录)
- word之图表和公式的自动编号(zz)
- 医院信息化-5 集成平台和数据中心
- Linux系统怎么安装鲁大师,windows电脑下怎么安装苹果系统?
- html字与字之间插入小图片,HTML第三课文字图片插入 (转载)
- java.sql.SQLException: ORA-00904:标识符无效
- 50款免费精美求职简历封面word模板