千家信息网

Python伪随机数模块random怎么用

发表于:2024-11-13 作者:千家信息网编辑
千家信息网最后更新 2024年11月13日,这篇"Python伪随机数模块random怎么用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来
千家信息网最后更新 2024年11月13日Python伪随机数模块random怎么用

这篇"Python伪随机数模块random怎么用"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Python伪随机数模块random怎么用"文章吧。

random模块

该模块实现了各种分布的伪随机数生成器。(包括在实数轴上计算均匀、正态(高斯)、对数正态、负指数、伽马和贝塔分布的函数)不应将此模块的伪随机生成器用于安全目的。有关安全性或加密用途,请使用secrets模块。

关于random模块的更多详细内容,请参考官方文档random — 生成伪随机数

下面列举一下该模块常用的功能。

random.seed

random.seed(a=None, version=2)

初始化随机数生成器,如果a被省略或为None,则使用当前系统时间。如果操作系统提供随机源,则使用它们而不是系统时间。当你的seed是相同的情况下,你多次执行得到的随机数序列是相同的。因为Mersenne Twister的完全确定性,因此random模块产生的随机数不适合加密目的。

常用整数随机函数

random.randrange(stop)random.randrange(start, stop[, step])

randrange()返回一个[start, stop)区间内随机选择的元素。

random.randint(a, b)

返回随机整数 N 满足 a <= N <= b。相当于 randrange(a, b+1)。

常用序列随机函数

random.choice(seq)

从非空序列 seq 返回一个随机元素。 如果 seq 为空,则引发 IndexError。

random.shuffle(x[, random])

将序列 x 随机打乱位置。(在原来的序列上进行,不会生成新的序列。)

可选参数 random 是一个函数,在 [0.0, 1.0) 中返回随机浮点数;默认情况下是函数 random.random() 。

random.sample(population, k, *, counts=None)

返回从总体序列或集合中选择的唯一元素的 k 长度列表。 用于无重复的随机抽样。(抽奖常用的函数)下面是一个抽奖的例子。

有30000人参加了Python编程活动,然后抽取1000人进行奖励。其中一等奖20人,二等奖30人,三等奖50人,四等奖200人,五等奖700人。

上述的抽奖活动,可以用如下的代码完成。

res = random.sample(range(1, 30001), 1000)print("一等奖名单:", res[:20])print("二等奖名单:", res[20:50])print("三等奖名单:", res[50:100])print("四等奖名单:", res[100:300])print("五等奖名单:", res[300:])

而且,这样产生的抽奖结果也将是可控的。例如,我们需要3号中一等奖,33号中二等奖,333号中三等奖。代码如下:

all_list = [x for x in range(1, 30001) if x not in[3, 33, 333]]res = random.sample(all_list, 997)# 暗箱操作res.insert(random.randint(0, 10), 3)    # 将3号掺入前10res.insert(random.randint(30, 40), 33)  # 将33号掺入30-40之间res.insert(random.randint(70, 90), 333) # 将333掺入到70-90之间print("一等奖名单:", res[:20])print("二等奖名单:", res[20:50])print("三等奖名单:", res[50:100])print("四等奖名单:", res[100:300])print("五等奖名单:", res[300:])

常用实数随机函数

random.random()

返回 [0.0, 1.0) 范围内的下一个随机浮点数。

random.uniform(a, b)

返回一个随机浮点数 N ,当 a <= b 时 a <= N <= b ,当 b < a 时 b <= N <= a 。终点 b 是否在该范围内。取决于等式 a + (b-a) * random() 中的浮点舍入结果。

random.gauss(mu, sigma)

正态分布,也称高斯分布。 mu 为平均值,而 sigma 为标准差。 此函数要稍快于下面所定义的 normalvariate() 函数。

多线程注意事项:

当两个线程同时调用此方法时,它们有可能将获得相同的返回值。 这可以通过三种办法来避免。

1) 让每个线程使用不同的随机数生成器实例。

2) 在所有调用外面加锁。

3) 改用速度较慢但是线程安全的 normalvariate() 函数。

random.normalvariate(mu, sigma)

正态分布。 mu 是平均值,sigma 是标准差。

以上就是关于"Python伪随机数模块random怎么用"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

模块 函数 名单 随机数 序列 内容 生成 常用 一等奖 三等奖 二等奖 生成器 线程 相同 安全 五等奖 元素 四等奖 点数 系统 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 北京驰俊网络技术有限公司6 绿色上网网络安全教学反思 虚拟信息网络安全 沈阳网络安全课程收费标准 网络安全研究生专业排名 steam哪个服务器不要钱 华为云阿里云数据库那个好 证券公司服务器错误 浦东新区技术软件开发供应 数据库中导入java代码 中犇科技同级别的软件开发公司 三核cpu数据库用不了 玩游戏无法连接服务器是什么原因 清远网络技术公司 字幕软件开发 百度云服务器出错了 公安局到自来水厂网络安全检查 网络安全为人民黑板报资料 苹果6s刷机后无法接通服务器 druid数据库自定义密码 网络技术对网络营销的影响 GaussDB是国产数据库吗 日趋成熟的网络技术搭建起 mid 网络安全 我国网络安全法的亮点有哪些 数据库本机服务器 数据库的英文简称什么 奉贤区品牌数据库系统收购价 mysql 是分布式数据库吗 咸阳游戏软件开发
0