【Random库】

2023-11-19

文章目录

random库概述

random库解析


random库概述

        随机数在计算机应用中十分常见,Python内置的random库主要用于产生各种分布的伪随机数序列。random库采用梅森旋转算法(Mersenne twister)生成伪随机数序列,可用于除随机性要求更高的加解密算法外的大多数工程应用。

使用random库主要目的是生成随机数,因此,读者只需要查阅该库的随机数生成函数,找到符合使用场景的函数使用即可。这个库提供了不同类型的随机数函数,所有函数都是基于最基本的random.random()函数扩展而来。


random库解析

函数

描述

seed(a=None)

初始化随机数种子,默认值为当前系统时间

random()

生成一个[0.0, 1.0)之间的随机小数

randint(a, b)

生成一个[a,b]之间的整数

getrandbits(k)

生成一个k比特长度的随机整数

randrange(start, stop[, step])

生成一个[start, stop)之间以step为步数的随机整数

uniform(a, b)

生成一个[a, b]之间的随机小数

choice(seq)

从序列类型(例如:列表)中随机返回一个元素

shuffle(seq)

将序列类型中元素随机排列,返回打乱后的序列

sample(pop, k)

从pop类型中随机选取k个元素,以列表类型返回

对random库的引用方法与math库一样,采用下面两种方式实现:

import random from random import *

实例

>>>from random import *

>>>random()        #生成一个[0.0, 1.0)之间的随机小数

0.2922089114412476

>>>uniform(1,10)        #生成一个[a, b]之间的随机小数

1.5913082783598524

>>>uniform(1,20)        #生成一个[a, b]之间的随机小数

7

>>>randrange (0,100,4) #从0开始到100以4递增的元素中随机返回

96

>>>choice(range(100))        #从序列类型(例如:列表)中随机返回一个元素

97

>>>ls = list(range(10))

>>>print(ls)

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>>shuffle(ls)        #将序列类型中元素随机排列,返回打乱后的序列

>>>print(ls)

[5,8,4,7,6,9,3,0,2,10, 1, 2, 3, 4, 5, 6, 7,8, 9]

随机密码生成

描述

补充编程模板中代码,完成如下功能:‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬

以整数17为随机数种子,获取用户输入整数N为长度,产生3个长度为N位的密码,密码的每位是一个数字。每个密码单独一行输出。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬

产生密码采用random.randint()函数。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬

输入输出示例

输入 输出
示例 1 3

634

524

926

代码
import random


def genpwd(length):
    pwd = random.randint(10**(length-1), 10**length)
    return pwd


length = eval(input())
random.seed(17)
for i in range(3):
    print(genpwd(length))

 

 生成随机数之前可以通过seed()函数指定随机数种子,随机种子一般是一个整数,只要种子相同,每次生成的随机数序列也相同。这种情况便于测试和同步数据

>>>seed(125) # 随机种子赋值125                                    

>>>"{}.{}.{}".format(randint(1,10),randint(1,10),randint(1,10))

'4.4.10'

>>>"{}.{}.{}".format(randint(1,10),randint(1,10),randint(1,10))

'5.10.3'

>>>seed(125) # 再次给随机种子赋值125                               

>>>"{}.{}.{}".format(randint(1,10),randint(1,10),randint(1,10))

'4.4.10'

 由上述语句可以看出,在设定相同的种子后,每次调用随机函数生成的随机数是相同的。这是随机数种子的作用,也是伪随机序列的应用之一。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Random库】 的相关文章

随机推荐

  • Microsoft Office 2010安装

    哈喽 大家好 今天一起学习的是office2010的安装 有兴趣的小伙伴也可以来一起试试手 一 测试演示参数 演示操作系统 Windows 7 不建议win10及以上操作系统使用 系统类型 64位 演示版本 SW DVD5 Office P
  • python库Camelot从pdf抽取表格数据以及python库camelot安装及使用中的一些注意事项

    一 python库camelot安装及使用中的一些注意事项 1 camelot方法有两种解析模式 流解析 stream 格子解析 lattice 其中格子解析能够保留表格完整的样式 对于复杂表格来说要优于流解析模式 同时 camelot方法
  • word2016怎么显示修改痕迹

    写需求文档时 想保留每次和产品沟通后修改的痕迹 避免扯皮 这就使用到了 word的审阅功能 1 点击 审阅 点击图中1的图片 点击高级选项进行修改内容的标记设置
  • 2022.04.11【读书笔记】

    文章目录 摘要 研究意义 转录组学意义 技术比较 研究方法 细胞筛选 文库构建 测序 实验方法 实验流程 常见问题 分析内容 重点 分析内容总览 细胞亚群分类 细胞类型频率统计 Marker基因分析 富集分析 样本差异分析 逆时分析 WGC
  • Java查询Mysql数据库时区问题(相差13/14)个小时

    一 CST GMT UTC 1 1 CST 这个代号缩写 并不是一个统一标准 目前 可以同时代表如下 4 个不同版本的时区概念 China Standard Time 中国标准时区 UTC 8 Cuba Standard Time 古巴标准
  • JAVA 泛型中的 的应用场景

    在JAVA 泛型中 经常看到
  • 《市场调查与分析》:在校大学生对微信小程序的使用情况

    目录 一 研究背景和目的 1 1调查背景 1 2调查目的 二 调查内容 三 调查方式 四 调查对象及范围 五 抽样设计 六 调查问卷 七 调查分析 7 1问卷数据 7 2问卷信度效度分析 7 3调查基本情况 八 调查结论 8 1小程序的使用
  • 【Python基础】Python中读取图片的6种方式

    Python进行图片处理 第一步就是读取图片 这里给大家整理了6种图片的读取方式 并将读取的图片装换成numpy ndarray 格式 首先需要准备一张照片 假如你有女朋友的话 可以用女朋友的 没有的话 那还学啥Python 赶紧找对象去吧
  • html修改display属性的值,web开发设计--JS的innerHTML/display属性

    1 innerHTML 属性 innerHTML 属性用于获取或替换 HTML 元素的内容 语法 Object innerHTML 注意 1 Object是获取的元素对象 如通过document getElementById ID 获取的元
  • 获取多选下拉框(select标签设置multiple属性)的值

  • 给elasticsearch设置密码

    1 在elasticsearch yml中添加如下配置 xpack security enabled true xpack license self generated type basic xpack security transprt
  • Redis 缓存穿透、缓存击穿和缓存雪崩

    目录 Redis 缓存穿透 缓存击穿和缓存雪崩 Redis 缓存穿透 查不到 Redis缓存穿透的解决方案 方案一 接口校验 方案二 缓存空对象 方案三 布隆过滤器 Redis 缓存击穿 Redis 缓存击穿的解决方案 Redis 缓存雪崩
  • 数据库系统原理——ER模型与关系模型

    犹记得第一次看 数据库系统原理 时看天书的感觉 云里雾里 现在已经是第二次参阅这本书了 顿时有所感悟 哦 原来是这样 现在呢 开窍了一点 写下来且当作为笔记 ER模型 ER模型的基本元素是 实体 联系和属性 实体 是一个数据对象 指应用中可
  • 第19课 微信小程序安装使用mpvue脚手架

    第19课 微信小程序安装使用mpvue脚手架 详情地址 http mpvue com mpvue quickstart 安装前检查环境 安装脚手架之前需要电脑已安装node与npm 首先按住 shift 鼠标右键 按下 在此处打开命令行窗口
  • 关于Redis数据过期策略

    1 Redis中key的的过期时间 通过EXPIRE key seconds命令来设置数据的过期时间 返回1表明设置成功 返回0表明key不存在或者不能成功设置过期时间 在key上设置了过期时间后key将在指定的秒数后被自动删除 被指定了过
  • vsCode开发STM32设置头文件宏定义

    一 问题描述 使用 HAL 库新建 STM32 工程后 使用 vsCode 打开工程文件夹 会提示找不到头文件 以及比变量没有定义 如 uint32 t 不是一个有效类型等错误提示 如下图所示 二 原因分析 vsCode 中没有配置头文件路
  • 通过KXTF9-2050芯片分析I2C协议

    1 I2C协议 参见博客 I2C通信协议详解和通信流程分析 2 I2C驱动的框架分析 1 驱动框架分为两层 物理层和协议层 物理层是通用的 取决于主设备 协议层则每个从设备都不同 2 物理层 物理层可以理解成通用层 就是上面的介绍的I2C协
  • 嵌入式毕设分享 - stm32单片机酒精浓度酒驾检测系统 - 物联网 嵌入式

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 硬件设计 MQ 3酒精乙醇传感器模块 SIM800C模块 5 软件说明 系统框图 6 部分核心代码 7 最后 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕
  • 腾然教育MCN覃小龙公子:覃宣量2022年2岁10个月亲子照

    2022年8月3日 我和爱人 还有公子覃宣量 一同前往之前媳妇定好的拍摄店 叫做在红光桥下面的那个店 专门是儿童摄影的 在柳州做了好多年的 我们一家三口 一大早 就过去拍照了 下面这组我3岁啦 儿童摄影师非常有创意 直接让儿子每一个字拍一个
  • 【Random库】

    文章目录 random库概述 random库解析 random库概述 随机数在计算机应用中十分常见 Python内置的random库主要用于产生各种分布的伪随机数序列 random库采用梅森旋转算法 Mersenne twister 生成伪