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

python random详解

文章目录

  • random
  • 简单示例
    • 1. 生成随机浮点数:
    • 2. 生成指定范围内的随机整数:
    • 3. 从序列中随机选择元素:
    • 4. 打乱序列顺序:
  • 常用的方法及其解释和例子:
    • 1. random():该方法返回一个0到1之间的随机浮点数。例如:
    • 2. randint(a, b):该方法返回一个指定范围内的随机整数,其中参数a是下限,参数b是上限。生成的随机数n满足a <= n <= b。例如:
    • 3. uniform(a, b):该方法返回一个指定范围内的随机浮点数,其中参数a是下限,参数b是上限。生成的随机数n满足a <= n <= b。例如:
    • 4. choice(sequence):该方法从给定的序列中随机选择一个元素。例如:
    • 5. sample(population, k):该方法从给定序列中随机选择指定数量的元素,并返回这些元素组成的列表。例如:
    • 6. shuffle(sequence):该方法将给定序列的元素打乱顺序。例如:
    • 7. random.randrange(start, stop[, step]):该方法返回一个在指定范围内的随机整数。参数start是下限,参数stop是上限,参数step是步长。生成的随机数n满足start <= n < stop。例如:
    • 8. random.randfloat(a, b):该方法返回一个指定范围内的随机浮点数,其中参数a是下限,参数b是上限。生成的随机数n满足a <= n <= b。例如:
    • 9. random.getrandbits(k):该方法返回k个随机比特位所表示的整数。生成的随机数n满足0 <= n < 2^k。例如:
    • 10. random.betavariate(alpha, beta):该方法返回一个根据Beta分布生成的随机数。生成的随机数n满足0 <= n <= 1。例如:
    • 12. random.expovariate(lambda):该方法返回一个根据指数分布生成的随机数。lambda是参数,表示单位时间内随机数的平均出现率。例如:
    • 13. random.normalvariate(mu, sigma):该方法返回一个根据正态分布生成的随机数。mu是平均值,sigma是标准差。生成的随机数n满足mu - 3*sigma <= n <= mu + 3*sigma。例如:
    • 14. random.weibullvariate(alpha, beta):该方法返回一个根据Weibull分布生成的随机数。alpha是分布的形状参数,beta是分布的尺度参数。生成的随机数n满足0 <= n <= 1。例如:
    • 15. random.triangular(low, high, mode):该方法返回一个指定范围内的随机数,并根据给定的mode(中点)进行对称性处理。生成的随机数n满足low <= n <= high。例如:
    • 16. random.gauss(mu, sigma):该方法返回一个根据高斯分布生成的随机数。mu是平均值,sigma是标准差。生成的随机数n满足mu - 3*sigma <= n <= mu + 3*sigma。例如:
    • 17.random.seed:随机种子(Random Seed)。随机种子是用于生成随机数序列的初始值,如果使用相同的随机种子,则生成的随机数序列将相同。可以在程序开始时设置一个随机种子,以确保每次运行程序时生成的随机数序列是相同的。例如:
  • 例:假设我们正在开发一个彩票游戏,需要生成一组随机数字作为中奖号码。我们可以使用random模块的randint()函数来生成指定范围内的随机整数。

random

Python的random模块是用于生成随机数的。它可以生成各种类型的随机数,包括随机浮点数、随机整数、随机选择序列等。

简单示例

1. 生成随机浮点数:

import random
x = random.random() # 生成0到1之间的随机浮点数
print(x)

2. 生成指定范围内的随机整数:

import random
x = random.randint(1, 100) # 生成1到100之间的随机整数,包含1和100
print(x)

3. 从序列中随机选择元素:

import random
my_list = [1, 2, 3, 4, 5]
x = random.choice(my_list) # 从my_list中随机选择一个元素
print(x)

4. 打乱序列顺序:

import random
my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list) # 将my_list的顺序打乱
print(my_list)

常用的方法及其解释和例子:

1. random():该方法返回一个0到1之间的随机浮点数。例如:

import random
x = random.random()
print(x)  # 输出:0.23214654274405987

2. randint(a, b):该方法返回一个指定范围内的随机整数,其中参数a是下限,参数b是上限。生成的随机数n满足a <= n <= b。例如:

import random
x = random.randint(1, 10)  # 输出:3

3. uniform(a, b):该方法返回一个指定范围内的随机浮点数,其中参数a是下限,参数b是上限。生成的随机数n满足a <= n <= b。例如:

import random
x = random.uniform(1, 3)  # 输出:1.2345678912345679

4. choice(sequence):该方法从给定的序列中随机选择一个元素。例如:

import random
my_list = [1, 2, 3, 4, 5]
x = random.choice(my_list)  # 输出:3

5. sample(population, k):该方法从给定序列中随机选择指定数量的元素,并返回这些元素组成的列表。例如:

import random
my_list = [1, 2, 3, 4, 5]
x = random.sample(my_list, 2)  # 输出:[3, 4]

6. shuffle(sequence):该方法将给定序列的元素打乱顺序。例如:

import random
my_list = [1, 2, 3, 4, 5]
random.shuffle(my_list)  # 将my_list的顺序打乱:[3, 2, 5, 1, 4]
print(my_list)  # 输出:[3, 2, 5, 1, 4]

7. random.randrange(start, stop[, step]):该方法返回一个在指定范围内的随机整数。参数start是下限,参数stop是上限,参数step是步长。生成的随机数n满足start <= n < stop。例如:

import random
x = random.randrange(1, 10)  # 输出:3

8. random.randfloat(a, b):该方法返回一个指定范围内的随机浮点数,其中参数a是下限,参数b是上限。生成的随机数n满足a <= n <= b。例如:

import random
x = random.randfloat(1, 3)  # 输出:1.2345678912345679

9. random.getrandbits(k):该方法返回k个随机比特位所表示的整数。生成的随机数n满足0 <= n < 2^k。例如:

import random
x = random.getrandbits(10)  # 输出:37

10. random.betavariate(alpha, beta):该方法返回一个根据Beta分布生成的随机数。生成的随机数n满足0 <= n <= 1。例如:

import random
x = random.betavariate(2, 5)  # 输出:0.8380302685376593

12. random.expovariate(lambda):该方法返回一个根据指数分布生成的随机数。lambda是参数,表示单位时间内随机数的平均出现率。例如:

import random
x = random.expovariate(0.5)  # 输出:0.6998649274150243

13. random.normalvariate(mu, sigma):该方法返回一个根据正态分布生成的随机数。mu是平均值,sigma是标准差。生成的随机数n满足mu - 3sigma <= n <= mu + 3sigma。例如:

import random
x = random.normalvariate(0, 1)  # 输出:-0.2924076542778294

14. random.weibullvariate(alpha, beta):该方法返回一个根据Weibull分布生成的随机数。alpha是分布的形状参数,beta是分布的尺度参数。生成的随机数n满足0 <= n <= 1。例如:

import random
x = random.weibullvariate(2, 5)  # 输出:0.27486544133783987

15. random.triangular(low, high, mode):该方法返回一个指定范围内的随机数,并根据给定的mode(中点)进行对称性处理。生成的随机数n满足low <= n <= high。例如:

import random
x = random.triangular(1, 10, 5)  # 输出:5.286543209876543

16. random.gauss(mu, sigma):该方法返回一个根据高斯分布生成的随机数。mu是平均值,sigma是标准差。生成的随机数n满足mu - 3sigma <= n <= mu + 3sigma。例如:

import random
x = random.gauss(0, 1)  # 输出:-1.3954670247686323

17.random.seed:随机种子(Random Seed)。随机种子是用于生成随机数序列的初始值,如果使用相同的随机种子,则生成的随机数序列将相同。可以在程序开始时设置一个随机种子,以确保每次运行程序时生成的随机数序列是相同的。例如:

import randomrandom.seed(123)  # 设置随机种子
x = random.randint(1, 10)  # 生成随机数
print(x)  # 输出:3

在这个例子中,我们首先使用random.seed()函数将随机种子设置为123,然后使用random.randint()函数生成一个1到10之间的随机整数。由于我们使用了相同的随机种子,因此每次运行程序时生成的随机数序列将是相同的。

例:假设我们正在开发一个彩票游戏,需要生成一组随机数字作为中奖号码。我们可以使用random模块的randint()函数来生成指定范围内的随机整数。

import random# 生成1到33之间的6个不重复的随机整数
winning_numbers = []
while len(winning_numbers) < 6:number = random.randint(1, 33)if number not in winning_numbers:winning_numbers.append(number)# 输出中奖号码
print("中奖号码是:", winning_numbers)

首先生成一个空的winning_numbers列表,然后在一个循环中使用randint()函数生成1到33之间的随机整数,检查它是否已经存在于winning_numbers列表中,如果不存在则将其添加到列表中。循环直到生成的随机数个数达到6个为止。最后,输出中奖号码。

安装hydra

pip install hydra-core --upgrade

相关文章:

python random详解

文章目录 random简单示例1. 生成随机浮点数&#xff1a;2. 生成指定范围内的随机整数&#xff1a;3. 从序列中随机选择元素&#xff1a;4. 打乱序列顺序&#xff1a; 常用的方法及其解释和例子&#xff1a;1. random()&#xff1a;该方法返回一个0到1之间的随机浮点数。例如&am…...

java-两个列表进行比较,判断那些是需要新增的、删除的、和更新的

文章目录 前言两个列表进行比较&#xff0c;判断那些是需要新增的、删除的、和更新的 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0c;实…...

【WPF.NET开发】WPF中的对话框

目录 1、消息框 2、通用对话框 3、自定义对话框 实现对话框 4、打开对话框的 UI 元素 4.1 菜单项 4.2 按钮 5、返回结果 5.1 模式对话框 5.2 处理响应 5.3 非模式对话框 Windows Presentation Foundation (WPF) 为你提供了自行设计对话框的方法。 对话框是窗口&…...

NLP项目实战01之电影评论分类

介绍&#xff1a; 欢迎来到本篇文章&#xff01;在这里&#xff0c;我们将探讨一个常见而重要的自然语言处理任务——文本分类。具体而言&#xff0c;我们将关注情感分析任务&#xff0c;即通过分析电影评论的情感来判断评论是正面的、负面的。 展示&#xff1a; 训练展示如下…...

一款可无限扩展的软件定时器开源框架项目代码

摘自链接 时间片轮询架构如何稳定高效实现&#xff0c;取代传统的标志位判断方式&#xff0c;更优雅更方便地管理程序的时间触发操作。 可以在STM32单片机上运行。...

GRE与顺丰圆通快递盒子

1. DNS污染 随想&#xff1a; 在输入一串网址后&#xff0c;会发生如下变化如果你在系统中配置了 Hosts 文件&#xff0c;那么电脑会先查询 Hosts 文件如果 Hosts 里面没有这个别名&#xff0c;就通过域名服务器查询域名服务器回应了&#xff0c;那么你的电脑就可以根据域名服…...

12.Mysql 多表数据横向合并和纵向合并

Mysql 函数参考和扩展&#xff1a;Mysql 常用函数和基础查询、 Mysql 官网 Mysql 语法执行顺序如下&#xff0c;一定要清楚&#xff01;&#xff01;&#xff01;运算符相关&#xff0c;可前往 Mysql 基础语法和执行顺序扩展。 (8) select (9) distinct (11)<columns_name…...

线性回归与逻辑回归:深入解析机器学习的基石模型

目录 一、线性回归 二、逻辑回归 逻辑回归算法和 KNN 算法的区别 分类算法评价维度...

电脑待机怎么设置?让你的电脑更加节能

在日常使用电脑的过程中&#xff0c;合理设置待机模式是一项省电且环保的好习惯。然而&#xff0c;许多用户对于如何设置电脑待机感到困扰。那么电脑待机怎么设置呢&#xff1f;本文将深入探讨三种常用的电脑待机设置方法&#xff0c;通过详细的步骤&#xff0c;帮助用户更好地…...

数据库对象介绍与实践:视图、函数、存储过程、触发器和物化视图

文章目录 一、视图&#xff08;View&#xff09;1、概念2、基本操作1&#xff09;创建视图2&#xff09;修改视图3&#xff09;删除视图4&#xff09;使用视图 3、使用场景4、实践 二、函数&#xff08;Function&#xff09;1、概念2、基本操作1&#xff09;创建函数2&#xff…...

arm平台编译so文件回顾

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、几个点二、回顾过程 1.上来就执行Makefile2.编译第三方开源库.a文件 2.1 build.sh脚本2.2 Makefile3.最终编译三、其它知识点总结 前言 提示&#xff1a;这…...

【数据结构】顺序表的定义和运算

目录 1.初始化 2.插入 3.删除 4.查找 5.修改 6.长度 7.遍历 8.完整代码 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Filotimo__✍️原创&#xff0c;首发于CSDN&#x1f4da;。 &…...

idea使用maven的package打包时提示“找不到符号”或“找不到包”

介绍&#xff1a;由于我们的项目是多模块开发项目&#xff0c;在打包时有些模块内容更新导致其他模块在引用该模块时不能正确引入。 情况一&#xff1a;找不到符号 情况一&#xff1a;找不到包 错误代码部分展示&#xff1a; Failure to find com.xxx.xxxx:xxx:pom:0.5 in …...

MetricBeat监控MySQL

目录 一、安装部署 二、开启mysql监控模块 三、编辑mysql配置文件 四、启动Metricbeat 五、查看监控图表 一、安装部署 metriceat的安装部署参考章节&#xff1a; Metricbeat安装使用&#xff0c;这里不再赘述。 二、开启mysql监控模块 进入metricbeat安装目录 ./metricb…...

Child Mind Institute - Detect Sleep States(2023年第一次Kaggle拿到了银牌总结)

感谢 感谢艾兄&#xff08;大佬带队&#xff09;、rich师弟&#xff08;师弟通过这次比赛机械转码成功、耐心学习&#xff09;、张同学&#xff08;也很有耐心的在学习&#xff09;&#xff0c;感谢开源方案&#xff08;开源就是银牌&#xff09;&#xff0c;在此基础上一个月…...

Esxi7Esxi8设置VMFSL虚拟闪存的大小

Esxi7Esxi8设置VMFSL虚拟闪存的大小 ESXi7,8 默认安装会分配一个 VMFSL(VMFS-L)(Local VMFS)很大空间(120G), 感觉很浪费, 实际给 8G 就可以了, 最少 6G , 经实验,给2G没法安装 . Esxi7是虚拟闪存的 修改的方法是: 在安装时修改 设置 autoPartitionOSDataSize8192 在cdromBoo…...

vue2+electron桌面端一体机应用

vue2+electron项目 前言:公司有一个项目需要用Vue转成exe,首先我使用vue-cli脚手架搭建vue2项目,然后安装electron 安装electron 这一步骤可以省略,安装electron-builder时会自动安装electron npm i electron 安装electron-builder vue add electron-builder 项目中多出…...

目标检测——OverFeat算法解读

论文&#xff1a;OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks 作者&#xff1a;Pierre Sermanet, David Eigen, Xiang Zhang, Michael Mathieu, Rob Fergus, Yann LeCun 链接&#xff1a;https://arxiv.org/abs/1312.6229 文章…...

vue获取主机id和IP地址

获取主机id和IP地址 在vue.config.js const os require(“os”); function getNetworkIp() { let needHost “”; // 打开的host try { // 获得网络接口列表 let network os.networkInterfaces(); for (let dev in network) { let iface network[dev]; for (let i 0; i …...

在pytorch中自定义dataset读取数据

这篇是我对哔哩哔哩up主 霹雳吧啦Wz 的视频的文字版学习笔记 感谢他对知识的分享 有关我们数据读取预训练 以及如何将它打包成一个一个batch输入我们的网络的 首先我们来看一下之前我们在讲resnet网络时所使用的源码 我们去使用了官方实现的image folder去读取我们的图像数据 然…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)

上一章用到了V2 的概念&#xff0c;其实 Fiori当中还有 V4&#xff0c;咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务)&#xff0c;代理中间件&#xff08;ui5-middleware-simpleproxy&#xff09;-CSDN博客…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...