当前位置: 首页 > news >正文

【Python的随机数汇总】

​我们写python代码的时候,很少能用得上随机数,但是随机数有很多妙用。例如,在我们做测试数据集的时候,可以构建一个随机的dataframe;
或者在保存数据的时候,可以在每条数据前插入一列作为,不重复的ID 字段使用,为作为文件或数据块生成一个唯一的“指纹”,用于快速识别或索引。可以根据需求来设置自己的数据“指纹”!

以下是一些使用随机数的汇总:

1、random模块的随机函数

random.random():
返回一个[0, 1)范围内的随机浮点数。

random.uniform(a, b):
返回一个指定范围内的随机浮点数,范围为[a, b]

random.randint(a, b): 返回一个随机整数N,使得a <= N <=b
random.randrange(start, stop, step):
从指定范围内按指定基数递增的元素中随机选择一个,类似于range函数。step 是步长,要求整数;当范围很大时,生成随机数可能会比较慢。
random.choice(seq): 从非空序列x中随机选择一个元素
random.shuffle(): 用于将序列x中的元素随机打乱。
random.sample(population, k): 从总体population中随机抽取k个元素,要求k <=len(population)。

以下是代码运行的部分:

import randomprint(random.random()) #0.9478274870593494
print(random.uniform(4, 5)) #4.056551367726809
print(random.randint(6,10)) #6
print(random.randrange(1, 10, 2)) #5print('随机选择 100 以内一个偶数:',random.randrange(0, 101, 2))
#随机选择 1 到 100 之间的一个偶数
print('随机选择 100 以内的一个奇数:',random.randrange(1, 101, 2))print(random.choice([1,5,4,8,7,14])#从列表中抽一个数出来'''random.shuffle() 打乱列表'''my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)
print(my_list)  # 输出可能是 [1, 5, 3, 4, 2],每次输出可能不同#random.shuffle 不会返回新的序列,而是就地修改传入的序列。
#由于 random.shuffle 修改的是原序列,如果需要保留原始序列,应该先复制一份序列,然后再进行打乱操作。'''从列表中随机选择 2 个不重复的元素'''
items = ['Number1', 'Number2', 'Number3', 'Number4', 'Number5']
sample = random.sample(items, 2)
print(sample) 
#['Number5', 'Number4']

2. 生成随机编码/字符串

用途:可以用来生成不重复的随机id,方便做数据库的管理

  1. md5加密的各种函数
    MD5是一种广泛使用的哈希函数,它可以产生一个128位(16字节)的哈希值,通常用一个32位的十六进制字符串表示。

可以使用的场景:
A .生成数据唯一的id(重复率低,比随机字符串靠谱)
B .MD5 用来做存储用户密码的哈希值
C .一些网站的连接的加密方式是:SSL/TLS通过使用非对称的 MD5加密来建立一个安全的连接,随后使用对称加密来加密数据,从而保护数据在客户端和服务器之间传输过程中的隐私和完整性。因此,有时候在获取网站的request的时候,在header/data,甚至是网址的构建的时候也会用到

import hashlib #导入hash库函数def hash_UTF8(text): #基于UTF-8生成的md5加密'''ASCII编码:一个字节一共可以用来表示256种不同的状态         UTF-8是Unicode的实现方式之一 ,对应的编码是 \u9996\  这种UTF8的BOM头为 0xEF 0xBB 0xBFUnicode大端模式为 0xFE 0xFFUnicode小端模式为 0xFF 0xFE'''md5_result= hashlib.md5(text.encode(encoding='UTF-8')).hexdigest()return md5_resultprint(hash_UTF8('虚拟机柯尼卡')) #0c9a8ebe776ce41b1017e613a2d980cf def hash_GBK(text):#基于GBK生成的md5加密''' GBK编码,是对GB2312编码的扩展,因此完全兼容GB2312-80标准 兼容汉字、图形等的编码 '''md5_result= hashlib.md5(text.encode(encoding='GBK')).hexdigest()return md5_result
print(hash_GBK('虚拟机柯尼卡」 Ⅷ Ⅸ 『 』 〖 〗 【 】 £ ‰ § № ☆ ★  △ ▲ ※ → ← ↑')) #70ad1b56a830a421d1740e37e6ebfe90def hash_GB2312(text): #基于GB2312生成的md5加密 汉字编码标准'''非ASCII编码 基于区位码 的汉字编码标准,一般编码方式是:0xA0+区号,0xA0+位号。 '''md5_result= hashlib.md5(text.encode(encoding='GB2312')).hexdigest()return md5_resultprint(hash_GB2312('0xB0 0xB2'))  #6ef23e84a2a6d9af087fc6f38425930cdef hash_GB18030(text):#基于GB18030生成的md5加密 ''' GB18030是对GB2312的扩展,其编码长度由2个字节变为1~4个字节 '''md5_result= hashlib.md5(text.encode(encoding='GB18030')).hexdigest()return md5_resultprint(hash_GB18030('∈(0142)')) #b79d04b89ebe2b4e7767388ba3b7d71f
  1. 基于UUID编码生成随机数
import uuid                       #通用唯一识别码def UUID_time():'''基于时间戳 '''return uuid.uuid1()
print(UUID_time()) #0fe9a715-f58b-11ee-92df-244bfe9a3ddddef uuid3(text):'''uuid3() 基于名字和MD5散列值,保证了同一命名空间中不同名字的唯一性 '''return uuid.uuid3(uuid.NAMESPACE_DNS,text)
print(uuid3('木卡姆0xBB'))  #e7860c98-4ef8-30de-8adc-eebce41612a0  def uuid4():'''基于随机数,会重复。不常用 '''return  uuid.uuid4()
print(uuid4()) #6467f0d7-1f49-4963-9a57-c6dfee8d2713
#重复概率:2的128次方 分之一,概率也很小def uuid5(text):'''基于名字和SAHI值,使用SAHI算法 若有名字的唯一性要求,最好使用uuid3()或者uuid5()'''return uuid.uuid5(uuid.NAMESPACE_OID,text)
  1. 生成随机字符串
import random
import stringdef randN(N):'''生成长度为 N的以串随机数 '''min = pow(10, N - 1)max = pow(10, N)return random.randint(min, max - 1)print( randN(5))#最后的结果是:“49846” ,数值是随机的,可以生成目标长度的数字。def generate_random_string(length):'''生成32位的随机字符串,字母和数字都可以 '''characters = string.ascii_letters + string.digitsreturn ''.join(random.choice(characters) for _ in range(length))

这些方法可以单独使用,也可以组合使用,以满足不同的随机性需求。例如,如果你需要生成一个随机的密码,你可以结合使用random.randint和random.choice来生成一个包含数字和字母的字符串。

3.随机生成dataframe

import numpy as np
import random
new=np.random.randint(0,100, size=[10,10])#从100个数内选出10列10行的随机数,但是会重复
new=np.random.choice(100, size=[10,10], replace=False)#从100个数内选出10列10行的随机数,不会重复
print(new) 

4. 随机生成队列

def No_Repeat_Queue(N,start,end): '''生成从start-end的不重复队列,数字长度为N个数,最后返回的是集合,用{}表示 '''random_numbers = set()while len(random_numbers) < N:number = random.randint(start, end)random_numbers.add(number)return  random_numbers   
print(No_Repeat_Queue(10,-1,25))

5. 随机生成列表

如果是想生成顺序乱的数组,可以使用random.sample()生成不重复的列表:

def No_Repeat_numbers(N,start,end):'''生成长度为N,从start-end 中选出的 列表 '''No_Repeat_num= random.sample(range(start, end), N)return No_Repeat_num
print(No_Repeat_numbers(10,1,101))
#选出从1-101的十个数
结果:[7, 16, 47, 4, 19, 18, 25, 62, 61, 58]

相关文章:

【Python的随机数汇总】

​我们写python代码的时候&#xff0c;很少能用得上随机数&#xff0c;但是随机数有很多妙用。例如&#xff0c;在我们做测试数据集的时候&#xff0c;可以构建一个随机的dataframe&#xff1b; 或者在保存数据的时候&#xff0c;可以在每条数据前插入一列作为&#xff0c;不重…...

[状态压缩 广搜BFS]Saving Tang Monk

描述 《Journey to the West》(also 《Monkey》) is one of the Four Great Classical Novels of Chinese literature. It was written by Wu Chengen during the Ming Dynasty. In this novel, Monkey King Sun Wukong, pig Zhu Bajie and Sha Wujing, escorted Tang Monk to…...

Flutter 实现软鼠标

文章目录 前言一、如何实现&#xff1f;1、记录鼠标偏移2、MouseRegion获取偏移3、Transform移动图标 二、完整代码三、使用示例总结 前言 flutter在嵌入式系统中运行时&#xff0c;有可能遇到drm鼠标无法使用的情况&#xff0c;但鼠标事件却可以正常接收&#xff0c;此时如果…...

使用 MLRun 和 MinIO 设置开发机器

MLOps 之于机器学习&#xff0c;就像 DevOps 之于传统软件开发一样。两者都是一组旨在改善工程团队&#xff08;开发或 ML&#xff09;和 IT 运营 &#xff08;Ops&#xff09; 团队之间协作的实践和原则。目标是使用自动化来简化开发生命周期&#xff0c;从规划和开发到部署和…...

资质申请表详解:填写《建筑幕墙工程设计专项资质申请表》的要点

填写《建筑幕墙工程设计专项资质申请表》的要点如下&#xff0c;按照清晰、分点表示和归纳的方式整理&#xff0c;并参考了文章中的相关数字和信息&#xff1a; 一、封面 申报企业名称&#xff1a;按照工商营业执照内容填写全称&#xff0c;并加盖企业公章。填报日期&#xf…...

华为手机怎么找回删除的照片?掌握3个方法,恢复不是梦

由于误删、设备故障、软件更新等原因&#xff0c;我们有时可能会不慎丢失这些宝贵的照片。当面对空空如也的相册时&#xff0c;那种失落感无法言喻。华为手机该怎么找回删除的照片呢&#xff1f;但是&#xff0c;请不要绝望&#xff01;在科技的帮助下&#xff0c;我们可以采取…...

数据结构试题 20-21

真需要就死记吧 二叉树遍历-先序(非递归)【图解代码】_哔哩哔哩_bilibili 解释一下步骤&#xff1a; 一个循环为&#xff1a; 1.取节点 2.放右子树 3.放左子树 每次循环&#xff0c;都要从栈里取出一个节点 先放右子树&#xff0c;再放左子树 那这道题就是&#xff0c;先放1&am…...

vscode插件开发之 - TestController

TesController概要介绍 TestController 组件是用于实现自定义测试框架和集成测试结果的。它允许开发者定义自己的测试运行器&#xff0c;以支持在VSCode中运行和展示测试。以下是一些使用 TestController 组件的主要场景&#xff1a; 自定义测试框架&#xff1a;如果你正在开发…...

QBitArray使用详解

QBitArray使用详解 一、创建和初始化 QBitArray1.1 QBitArray默认构造1.2 QBitArray指定大小的构造1.3 QBitArray指定大小和初始值的构造 二、设置和访问位2.1 QBitArray设置单个位2.2 QBitArray访问单个位2.3 QBitArray使用下标操作符 三、设置所有位3.1 QBitArray将所有位设置…...

基于Python的自然语言处理项目 ChatTTS 推荐

**项目名称&#xff1a;ChatTTS**  ChatTTS是一个基于Python的自然语言处理项目&#xff0c;旨在实现一个简单的文本到语音转换系统。它使用深度学习技术&#xff0c;通过自然语言处理和语音合成算法&#xff0c;将文本转换为语音输出。  **项目介绍**&#xff1a;  Chat…...

论 To B 产品:从概念到市场实践

本文作者为 360 奇舞团产品经理 论 To B 产品&#xff1a;从概念到市场实践 To B 产品在商业世界中扮演着至关重要的角色。相较于面向消费者的To C市场&#xff0c;To B市场更专注于为其他企业提供产品和服务。理解和成功运营To B产品需要对其特定的市场需求和运作方式有深刻的…...

如何通过自定义模块DIY出专属个性化的CSDN主页?一招教你搞定!

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; 文章目录 &#x1f4af;如何通过HTMLCSS自定义模板diy出自己的个性化csdn主页&#x…...

[BSidesCF 2020]Had a bad day1

看到页面有两个按钮 先随便点一个试一下&#xff0c;当我们点击之后发现url是有变动的 感觉url是有点东西的&#xff0c;可能是某种注入&#xff0c;先尝试一下sql注入&#xff0c;发现给出了报错 通过报错我们可以确定是文件包含漏洞&#xff0c;那我们试试php伪协议去读取一下…...

从媒体网站的频道划分看媒体邀约的分类?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体宣传加速季&#xff0c;100万补贴享不停&#xff0c;一手媒体资源&#xff0c;全国100城线下落地执行。详情请联系胡老师。 在我们举行活动的时候&#xff0c;通常会邀请媒体到现场来…...

Day40

Day40 监听器 概念&#xff1a; 监听器用于监听web应用中某些对象信息的创建、销毁、增加&#xff0c;修改&#xff0c;删除等动作的 发生&#xff0c;然后作出相应的响应处理。当范围对象的状态发生变化的时候&#xff0c;服务器自动调用 监听器对象中的方法。 常用于统计在线…...

linux基础 - 内核的基础概念

目录 零. 前言 一. 源码简介 二. 存储管理 物理内存管理&#xff1a; 虚拟内存管理&#xff1a; 内存分配与回收&#xff1a; 三. CPU 和进程管理 进程管理&#xff1a; CPU 管理&#xff1a; 四. 文件系统 文件系统的概念 常见的 Linux 文件系统类型 文件系统的工…...

centos7系统使用docker-compose安装部署jenkins

CentOS7系统使用docker-compose安装部署jenkins&#xff0c;并实现前后端自动构建 记录一次工作中部署jenkins的真实经历&#xff0c;总结了相关经验 1.准备环境 1.java 由于最新的jenkins需要jdk11以上才能支持&#xff0c;而系统里的jdk是1.8的&#xff0c;因此等jenkins安…...

传染病报卡内容——丙型

--丙型 select a.morbiditdate 发病日期, diagnosedate 诊断日期, a.deathdate 死亡日期, a.casetypequality 病例分类,a.hcvrna "HCR_RNA定量" from zl_sdmb.t_报卡记录 t, c1_infectiousv1_6 a where t.id a.fileid and t.卡片种类 传…...

本地快速部署大语言模型开发平台Dify并实现远程访问保姆级教程

文章目录 前言1. Docker部署Dify2. 本地访问Dify3. Ubuntu安装Cpolar4. 配置公网地址5. 远程访问6. 固定Cpolar公网地址7. 固定地址访问 前言 本文主要介绍如何在Linux Ubuntu系统使用Docker快速部署大语言模型应用开发平台Dify,并结合cpolar内网穿透工具实现公网环境远程访问…...

《Cloud Native Data Center Networking》(云原生数据中心网络设计)读书笔记 -- 02 Clos拓扑

本章回答以下问题&#xff1a; 什么是 Clos 拓扑&#xff0c;它与“接入 - 汇聚 - 核心”拓扑有何不同?Clos 拓扑的特征是什么?Clos 拓扑对数据中心网络的影响是什么? Clos拓扑 云原生数据中心基础设施的先行者们想要构建一种支持大规模水平扩展网络。 基本的Clos拓扑如图…...

VUE3版本新特性

VUE3版本新特性 VUE3和VUE2的区别路由的使用vite安装项目新特性使用 1.VUE3和VUE2的区别 2020年9月18日&#xff0c;Vue.js发布版3.0版本&#xff0c;代号&#xff1a;One Piece 于 2022 年 2 月 7 日星期一成为新的默认版本! Vue3性能更高,初次渲染快55%, 更新渲染快133% 。…...

【Oracle篇】Oracle数据库坏块处理:rman修复坏块实践与案例分析(第七篇,总共八篇)

&#x1f4ab;《博主介绍》&#xff1a;✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ &#x1f4ab;《擅长领域》&#xff1a;✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux&#xff0c;也在扩展大数据方向的知识面✌️…...

学懂C#编程:从一个简单的例子理解事件处理

在C#中&#xff0c;事件是一种特殊的委托类型&#xff0c;用于在对象上发生某些事情时通知订阅者。事件的处理通常包括定义事件&#xff0c;创建触发事件的条件&#xff0c;以及订阅该事件的事件处理程序。 以下是一个简单的C#事件处理示例&#xff1a; using System;// 定义…...

深入理解指针(2)

4. const 修饰指针 4.1 const修饰变量 变量是可以修改的&#xff0c;如果把变量的地址交给⼀个指针变量&#xff0c;通过指针变量的也可以修改这个变量。 但是如果我们希望⼀个变量加上⼀些限制&#xff0c;不能被修改&#xff0c;怎么做呢&#xff1f;这就是const的作⽤。 …...

C#.Net筑基-集合知识全解

01、集合基础知识 .Net 中提供了一系列的管理对象集合的类型&#xff0c;数组、可变列表、字典等。从类型安全上集合分为两类&#xff0c;泛型集合 和 非泛型集合&#xff0c;传统的非泛型集合存储为Object&#xff0c;需要类型转。而泛型集合提供了更好的性能、编译时类型安全…...

AI PPT生成器,一键在线智能生成PPT工具

PPT作为商业沟通和教育培训中的重要工具&#xff0c;PPT制作对于我们来说并不陌生。但是传统的PPT制作不仅耗时&#xff0c;而且想要做出精美的PPT&#xff0c;需要具备一定的设计技能。下面小编就来和大家分享几款AI PPT工具&#xff0c;只要输入主题&#xff0c;内容就可以在…...

stm32学习笔记---零基础入门介绍2

目录 STM32介绍 STM32家族系列 ARM介绍 ARM内核型号种类 我们学习用的STM32 片上资源/外设&#xff08;Peripheral&#xff09; 命名规则 系统结构 引脚定义 STM32的启动配置 STM32最小系统电路和其他部分电路 最小系统板的实物图 附&#xff1a;安装软件准备 声明…...

搭建取图系统app源码开发,满足广泛应用需求

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 前言 图片已成为信息传递的重要媒介&#xff0c;广泛应用于各个领域。为满足日益增长的图片需求&#xff0c;搭建一款高效的取图系统&#xff0c;可以为用户提供便捷、全面的…...

语音质量评价方法之MOS

引言 在语音增强、语音合成、语音转换、声音转换、语音克隆、语音修复等等领域&#xff0c;常常要对输出的语音进行评价。对语音的质量评价一般关注两个方面&#xff0c;即主观评价和客观评价。主观评价就是人凭借听觉感受对语音进行打分&#xff0c;客观评价比较广泛&#xf…...

gorm简介

【1】ORM: 即Object-Relational Mapping,它的作用是在关系型数据库和对象之间作一个映射&#xff0c;这样我们在具体的操作数据库的时候&#xff0c;就不需要再去和复杂的SQL语句打交道&#xff0c;只要像平时操作对象一样操作它们就可以了。 【2】GORM gorm是go语言的一个orm…...

做图片网站咋样/全国最新实时大数据

1. Echarts环境配置选择需要的&#xff0c;然后等待Build完成之后&#xff0c;就会自动弹出下载框啦&#xff01;把下载好的js放在web目录下~ 然后在对应的jsp内导入噢~2.Echarts代码pageEncoding"UTF-8"%>Insert title here// 基于准备好的dom&#xff0c;初始化…...

装饰公司做网站怎么收费/北京seo关键词优化收费

可燃气体传感器对一种或多种的可燃气体的浓度进行检测并响应&#xff0c;在工业中的使用频率比较高的。近年来&#xff0c;传感器相关技术水平飞速发展&#xff0c;可燃气体传感器也开始朝向高稳定性、易操作性的方向发展。那么可燃气体传感器工作原理是怎样的呢&#xff1f;下…...

wordpress+漂亮的博客/哪家网络推广好

jpa修改部分属性的方法如果我们想提高流程效率&#xff0c;我们该如何组织&#xff1f; 我们会通过管理人员的服务而不是控制来奖励他们&#xff0c; 第3部分 &#xff0c;停止按职能进行组织&#xff0c;而转向看起来像基于产品的组织&#xff1f; 对于这个问题&#xff0c;我…...

陕西省建设工程监理协会网站 查询/seo代码优化步骤

基于 Schema的AOP是 Spring20发布之后新增加的一种AOP使用方式,我们可以从如下两个角度来看待基于 Schema的AOP&#xff1a; 配置配置方式的改变。 Spring框架从1x版本升级到2x版本之后,提倡的容器配置方式从基于DTD的XML转向了基于 Schema的XML,进一步提高了配置方式的灵活性和…...

浙江省住房建设厅网站首页/品牌词优化

项目gitHub地址 点我跳转 今天给大家带来一个C#里面的时间工具类&#xff0c;具体的直接看下面代码 1 using System;2 3 namespace ToolBox.DateTimeTool4 {5 public static class DateTimeExtend6 {7 /// <summary>8 /// 获取本日开始时间&…...

网站建设课程教学计划/南昌seo实用技巧

Github地址&#xff1a;https://github.com/littlenorthwest/personal-project PSP Table PSP2.1Personal Software Process Stages预估耗时&#xff08;分钟&#xff09;实际耗时&#xff08;分钟&#xff09;Planning计划 60 80 Estimate 估计这个任务需要多少时间 60   80…...