码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 20个Python random模块的代码示例


    合集 - 开发与运维(35)
    1.面试官:你能简单聊聊MyBatis执行流程02-022.一文详解应用安全防护ESAPI02-043.一个线程,从“生”到“死”经历的过程02-054.KubeEdge v1.16.0 版本发布!10项新增特性02-055.解密JavaChassis3:易扩展的多种注册中心支持02-066.解析Sermant热插拔能力:服务运行时动态挂载JavaAgent和插件02-087.想设计一个高并发的消息中间件前,先熟悉一下这些知识点02-178.华为云GES助力九洲平台:探索确定性运维的新实践02-179.0-overlay和underlay,这两种容器网络你分得清吗02-1810.教你用Rust实现Smpp协议02-1811.基于OpenTelemetry实现Java微服务调用链跟踪02-1912.揭开华为云ADN提高网络质量的秘密02-1913.详解网络知识:iptables规则02-1914.实例详解在Go中构建流数据pipeline02-2115.面试官让我讲讲MySQL三大核心日志实现原理02-2116.华为云帕鲁服务器-云耀云容器版,到底强在哪?02-2217.掌握云容器网络:何为ipvs02-2218.一文带你了解容器探针02-2319.教你如何判断Java代码中异步操作是否完成02-2620.深入解析Python并发编程的多线程和异步编程02-2721.教你如何用Keepalived和HAproxy配置高可用 Kubernetes 集群02-2822.容器化环境中,JVM最佳参数配置实践02-2923.关于Python中math 和 decimal 模块的解析与实践02-2924.运维一款月变更70+次的服务,是一种什么体验?03-0125.详解Python中sys模块的功能与应用03-0426.教你用Ubuntu快速搭建饥荒服务器03-0427.分享一个能让你的研发效率提升超过20%的工具03-0628.下一代积木式智能组装编排,集成开发效率10倍提升03-0629.如何基于容器网络流量指标进行弹性伸缩03-0630.Sermant运行流程学习笔记,速来抄作业03-0631.用几张图实战讲解MySQL主从复制03-0732.速存,详细罗列香橙派AIpro外设接口样例大全(附源码)03-0733.CCE集群VPC网络模式下几种访问场景03-1134.聊聊CWE 4.14 与 ISA/IEC 62443中,如何保障工业软件的安全性03-12
    35.20个Python random模块的代码示例03-13
    收起

    本文分享自华为云社区《Python随机数探秘:深入解析random模块的神奇之处》,作者:柠檬味拥抱。

    标准库random函数大全:探索Python中的随机数生成

    随机数在计算机科学和数据科学领域中扮演着重要角色,Python的标准库中提供了random模块,用于生成各种随机数。本篇博客将深入探讨random模块的各种函数,以及它们的应用场景和代码示例。

    1. random.random()

    random.random()函数返回一个范围在[0.0, 1.0)之间的随机浮点数。这是生成均匀分布随机数的基础函数。

    import random
    
    random_number = random.random()
    print("随机浮点数:", random_number)

    2. random.randint(a, b)

    random.randint(a, b)函数生成一个范围在[a, b]之间的随机整数。这在需要生成整数随机数时非常有用。

    import random
    
    random_integer = random.randint(1, 10)
    print("随机整数:", random_integer)

    3. random.choice(seq)

    random.choice(seq)函数从序列seq中随机选择一个元素返回。适用于从列表、元组等序列中随机挑选元素的场景。

    import random
    
    my_list = [1, 2, 3, 4, 5]
    random_element = random.choice(my_list)
    print("随机选择的元素:", random_element)

    4. random.shuffle(x)

    random.shuffle(x)函数用于将序列x中的元素随机排列,打乱原有顺序。

    import random
    
    my_list = [1, 2, 3, 4, 5]
    random.shuffle(my_list)
    print("打乱后的列表:", my_list)

    5. random.sample(population, k)

    random.sample(population, k)函数从总体population中随机选择k个不重复的元素。适用于需要获取不重复样本的情况。

    import random
    
    my_list = [1, 2, 3, 4, 5]
    sampled_list = random.sample(my_list, 3)
    print("随机抽样后的列表:", sampled_list)

    6. random.uniform(a, b)

    random.uniform(a, b)函数生成一个范围在[a, b]之间的随机浮点数,类似于random.random()但可以指定范围。

    import random
    
    random_float = random.uniform(1.0, 5.0)
    print("指定范围的随机浮点数:", random_float)

    这只是random模块中一小部分函数的介绍,该模块还包括其他函数,如random.gauss()用于生成高斯分布的随机数。通过灵活使用这些函数,可以满足各种随机数生成的需求。在实际应用中,深入了解这些函数的特性和用法,可以帮助提高程序的随机数生成效率和准确性。

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

    random.seed(a=None, version=2)函数用于初始化伪随机数生成器的种子。通过设置相同的种子,可以确保在不同的运行中获得相同的随机数序列,这对于调试和重现实验结果非常有用。

    import random
    
    random.seed(42)  # 设置随机数生成器的种子为42
    random_number = random.random()
    print("固定种子下的随机浮点数:", random_number)

    8. random.getrandbits(k)

    random.getrandbits(k)函数生成k比特长的随机整数。适用于需要生成指定位数的随机整数的情况。

    import random
    
    random_bits = random.getrandbits(4)  # 生成4比特长的随机整数
    print("随机整数(4比特长):", random_bits)

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

    random.randrange(start, stop[, step])函数生成一个在指定范围内以指定步长递增的随机整数。

    import random
    
    random_integer = random.randrange(0, 10, 2)  # 在0到10之间,以2为步长生成随机整数
    print("随机整数(指定范围和步长):", random_integer)

    10. random.random()

    random.random()函数在前面提到过,但值得注意的是,它生成的是伪随机数。如果需要更加随机的种子,可以结合使用time模块获取当前时间作为种子。

    复制代码
    import random
    import time
    
    random.seed(time.time())
    random_number = random.random()
    print("更加随机的浮点数:", random_number)
    复制代码

    通过深入了解random模块的这些函数,你可以更好地利用Python进行随机数生成,满足各种应用场景的需求。无论是用于模拟实验、数据采样还是密码学领域,random模块提供了强大的工具来处理随机数。确保在实际应用中选择适当的函数,并根据需求设置合适的参数,以获得所需的随机性。

    11. random.triangular(low, high, mode)

    random.triangular(low, high, mode)函数生成一个服从三角分布的随机浮点数,其中low是分布的最小值,high是最大值,mode是众数。

    import random
    
    random_triangular = random.triangular(1, 5, 3)  # 生成三角分布的随机数
    print("三角分布的随机浮点数:", random_triangular)

    12. random.betavariate(alpha, beta)

    random.betavariate(alpha, beta)函数生成一个服从Beta分布的随机浮点数,其中alpha和beta是分布的形状参数。

    import random
    
    random_beta = random.betavariate(2, 5)  # 生成Beta分布的随机数
    print("Beta分布的随机浮点数:", random_beta)

    13. random.expovariate(lambd)

    random.expovariate(lambd)函数生成一个服从指数分布的随机浮点数,其中lambd是分布的逆比例尺度参数。

    import random
    
    random_exponential = random.expovariate(2)  # 生成指数分布的随机数
    print("指数分布的随机浮点数:", random_exponential)

    14. random.gammavariate(alpha, beta)

    random.gammavariate(alpha, beta)函数生成一个服从Gamma分布的随机浮点数,其中alpha是形状参数,beta是尺度参数。

    import random
    
    random_gamma = random.gammavariate(2, 1)  # 生成Gamma分布的随机数
    print("Gamma分布的随机浮点数:", random_gamma)

    15. random.paretovariate(alpha)

    random.paretovariate(alpha)函数生成一个服从帕累托分布的随机浮点数,其中alpha是形状参数。

    import random
    
    random_pareto = random.paretovariate(2)  # 生成帕累托分布的随机数
    print("帕累托分布的随机浮点数:", random_pareto)

    通过理解这些分布的生成函数,可以更好地在统计建模、模拟实验等应用中使用random模块,满足不同分布的随机数需求。选择适当的分布和参数将有助于更准确地模拟实际情况。

    16. random.weibullvariate(alpha, beta)

    random.weibullvariate(alpha, beta)函数生成一个服从威布尔分布的随机浮点数,其中alpha是形状参数,beta是尺度参数。

    import random
    
    random_weibull = random.weibullvariate(2, 1)  # 生成威布尔分布的随机数
    print("威布尔分布的随机浮点数:", random_weibull)

    17. random.gauss(mu, sigma)

    random.gauss(mu, sigma)函数生成一个服从高斯分布(正态分布)的随机浮点数,其中mu是均值,sigma是标准差。

    import random
    
    random_gaussian = random.gauss(0, 1)  # 生成高斯分布的随机数
    print("高斯分布的随机浮点数:", random_gaussian)

    18. random.lognormvariate(mu, sigma)

    random.lognormvariate(mu, sigma)函数生成一个服从对数正态分布的随机浮点数,其中mu是对数均值,sigma是对数标准差。

    import random
    
    random_lognormal = random.lognormvariate(0, 1)  # 生成对数正态分布的随机数
    print("对数正态分布的随机浮点数:", random_lognormal)

    19. random.vonmisesvariate(mu, kappa)

    random.vonmisesvariate(mu, kappa)函数生成一个服从von Mises分布(圆周分布)的随机浮点数,其中mu是分布的均值,kappa是分布的集中度参数。

    import random
    
    random_vonmises = random.vonmisesvariate(0, 1)  # 生成von Mises分布的随机数
    print("von Mises分布的随机浮点数:", random_vonmises)

    20. random.choices(population, weights=None, k=1)

    random.choices(population, weights=None, k=1)函数从总体population中以权重weights进行随机抽样,返回k个元素。

    复制代码
    import random
    
    choices_population = [1, 2, 3, 4, 5]
    weights = [0.1, 0.2, 0.3, 0.2, 0.2]
    random_choices = random.choices(choices_population, weights=weights, k=3)
    print("带权重的随机抽样结果:", random_choices)
    复制代码

    这些函数覆盖了random模块中的主要随机数生成方法,可以满足多样化的需求。在实际应用中,根据具体场景选择适当的分布和函数,合理设置参数,能够更好地模拟真实情况,支持科学计算和数据分析。

    总结

    在本文中,我们深入探讨了Python标准库中的random模块,介绍了各种随机数生成函数以及它们的应用场景和代码示例。从生成均匀分布的random.random()到更复杂的分布如三角分布、Beta分布、威布尔分布等,random模块提供了丰富的工具来满足不同随机数需求。

    我们学习了如何生成随机整数、随机浮点数,以及如何在序列中进行随机选择和打乱。探讨了种子的设置和伪随机数生成器的初始化,以及如何应用在实验重现和调试过程中。同时,通过深入了解各种分布的生成函数,我们能够更好地模拟和处理不同领域的实际问题。

    最后,我们强调了在实际应用中,根据具体场景选择适当的随机数生成函数是非常关键的。合理设置参数,选择合适的分布,有助于提高模拟的准确性和实验的可重现性。random模块为科学计算、模拟实验和数据分析等领域提供了强大的工具,通过灵活应用这些函数,我们能够更好地处理各种随机性需求。

     

    点击关注,第一时间了解华为云新鲜技术~

     

  • 相关阅读:
    Spring面向AOP编程与Spring事务笔记
    【数智化人物展】白鲸开源CEO郭炜:大模型助力企业大数据治理“数智化”升级...
    SElinux管理
    maven
    计算机毕业设计springboot+vue+elementUI基本微信小程序的新冠疫苗预约小程序
    【JavaWeb - 网页编程】五 XML 介绍
    Openssl数据安全传输平台019:外联接口类的封装以及动态库的制作 - Bug未解决,感觉不是代码的问题
    【Spring】20 解析Spring注解驱动的容器配置
    vue+element模仿电商商城,前后端分离实现,下单微信扫码支付
    【BUG】cmd运行wmic提示‘wmic‘ 不是内部或外部命令
  • 原文地址:https://www.cnblogs.com/huaweiyun/p/18069929
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号