大部分的计算机语言都会提供 API 生成 随机数 , 此类 API 称为 随机数生成器 。
计算机可以用随机数模拟现实世界中的各种随机概率问题 , 没有随机生成器的编程语言不是“ 好语言 ” 。
现实世界中的随机数:比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等等 。
计算机通过硬件技术摸拟现实世界中这种 物理现象 所生成的随机数 , 我们称其为真随机数 。 这样的随机数生成器叫做 物理性随机数生成器 。 生成真随机数对计算机的硬件技术要求较高 。
真正随机数的特点:不可预测 。
如在掷硬币时 , 你无法真正预测到下一次硬币的面向 。
由算法摸拟生成的随机数称其为伪随机数 。 计算机编程语言中所生成的随机数基本上都是伪随机数 。
伪随机数的特点:既然是由算法模拟的 , 虽然在一个较短的周期内是无法预测的 , 在一个较长的周期内的随机数具有可预测性 。
生成伪随机数时 , 需要设置随机种子 , 种子作用就是在随机数的生成算法里注入一个动态变化量 。
比如说使用系统的当前时间做随机种子 , 随机算法就可以在时间变化的基础上生成随机性更大的随机数 。 但是 , 如果不是在毫秒级别下生成随机数 , 同一时间点下所生成的大量随机数就有可能出现相等的情况 。
选择种子时 , 可以考虑综合多维度的变化值进行运算 。 如在 UNIX 系统中 , 将系统时间、连入WIFI、甚至按下的键盘次数都量化为了seed 。
random 模块实现了各种分布的伪随机数生成器 。 因为完全确定性 , 它不适用于所有目的 , 并且完全不适合加密目的 。 不应将此模块的伪随机生成器用于安全目的 。 有关安全性或加密用途 , 可使用 Python 中的 secrets 模块 。
使得之前需要导入 random 模块
import random2.1 随机模块的方法
- 初始化随机种子
random.seed(a=None, version=2)- 如果
- 训练成年狗在家上厕所 泰迪狗第一步怎么训练上厕所
- 小狗缺钙怎么办?小狗缺少钙
- 藜麦代餐粉真的能减肥吗?
- 作为教师,要怎么帮助幼儿做好幼小衔接?
- 只涂了隔离和防晒该怎么卸妆 单涂隔离也要卸妆
- 小奥汀睫毛膏怎么样 小奥汀睫毛膏真的好用吗
- 口红粘毛怎么办 怎么解决口红粘毛
- 每天只吃一顿饭,早晚各跑一个小时,体重不怎么降怎么办
- 肉松小贝怎么做,外面的肉松在哪能买到?
- word护眼模式怎么设置
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
