首页 > 编程语言 >20个Python random模块的代码示例

20个Python random模块的代码示例

时间:2024-03-13 09:59:55浏览次数:31  
标签:20 函数 示例 Python 浮点数 random 生成 随机 随机数

本文分享自华为云社区《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分布的随机浮点数,其中alphabeta是分布的形状参数。

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模块为科学计算、模拟实验和数据分析等领域提供了强大的工具,通过灵活应用这些函数,我们能够更好地处理各种随机性需求。

 

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

 

标签:20,函数,示例,Python,浮点数,random,生成,随机,随机数
From: https://www.cnblogs.com/huaweiyun/p/18069929

相关文章

  • python软件安装
    WelcometoPython.org一:打开这个网址(如下图所示)二:点击下方图标将会跳转到下面这个页面三:将页面翻到下图位置随便选择一个版本下载即可(尽量选择低于最新版本的几个版本)四:安装这个软件在cmd里面,输入python,出来这个结果,即为安装成功......
  • 洛谷题单指南-线性表-P2234 [HNOI2002] 营业额统计
    原题链接:https://www.luogu.com.cn/problem/P2234题意解读:要计算每一天最小波动值的和,需要对每一天求最小波动值,再求和,如果暴力法,时间复杂度在1+2+3+......+32767≈5*10^8,可能会超时。解题思路:1、暴力法:由于本题测试数据比较水,实测暴力求解直接可以AC,由于没有技术含量,不做具体......
  • 【算法训练营】最长公共子序列,倒水问题,奶牛吃草(Python实现)
    最长公共子序列时间限制:1sec空间限制:256MB问题描述给定两个1到n的排列A,B(即长度为n的序列,其中[1,n]之间的所有数都出现了恰好一次)。求它们的最长公共子序列长度。输入格式第一行一个整数n,意义见题目描述。第二行n个用空格隔开的正整数A[1],…,......
  • 2024-3-12
    上午睡觉,下午一下午课,大物实验老师跟犯病了似的,不过无所谓,晚上去上了双创课,于迅博老师感冒了,下课了去找他,他要赶校车,上校车给我打电话了解情况,上自己车后又给我打电话,打了46分钟,真是负责任啊。老师之间的差距是真的大,3月3号问张继威的问题现在还没回我呢。谈话内容总结:老师建议读......
  • 【算法训练营】邓老师书,子序列,前缀(python实现)
    邓老师数时间限制:1sec空间限制:256MB问题描述众所周知,大于1的自然数中,除了1与其本身外不再有其他因数的数称作质数(素数)。对于大于1的不是质数的自然数,我们又称作合数。参加了邓老师算法训练营的小Z突发奇想,定义了新的数:所有合数中,除了1与其本身外,其他因......
  • 2000+java毕业设计实例,包含代码论文,软件工程专业必看
    包含部署视频:1、基于ssh的婴幼儿产品销售系统毕业设计(项目报告+答辩PPT+源代码+数据库+截图+部署视频)☞☞☞点击查看项目整体介绍☞☞☞点击查看毕业论文介绍2、基于java的医院管理住院系统毕业设计(项目报告+答辩PPT+源代码+数据库+部署视频)☞☞☞点击查看项目整......
  • java毕业设计,2000+套,计算机学子首选
    包含部署视频:1、基于ssh的婴幼儿产品销售系统毕业设计(项目报告+答辩PPT+源代码+数据库+截图+部署视频)☞☞☞点击查看项目整体介绍☞☞☞点击查看毕业论文介绍2、基于java的医院管理住院系统毕业设计(项目报告+答辩PPT+源代码+数据库+部署视频)☞☞☞点击查看项目整......
  • 华为OD机试真题-模拟目录管理-2024年OD统一考试(C卷)
    题目描述:实现一个模拟目录管理功能的软件,输入一个命令序列,输出最后一条命令运行结果。支持命令: 1)创建目录命令:mkdir目录名称,如mkdirabc为在当前目录创建abc目录,如果已存在同名目录则不执行任何操作。此命令无输出。 2)进入目录命令:cd目录名称,如cdabc为进入abc目录,......
  • Ubuntu 20.04 部署 MinIO
    MinIO是一款基于ApacheLicensev2.0开源协议的分布式文件系统(或者叫对象存储服务),可以做为云存储的解决方案用来保存海量的图片、视频、文档等。由于采用Golang实现,服务端可以工作在Windows、Linux、OSX和FreeBSD上。配置简单,基本是复制可执行程序,单行命令就可以运行起来。M......
  • Python爬虫实战系列1:博客园cnblogs热门新闻采集
    实战案例:博客园热门新闻采集一、分析页面打开博客园网址https://www.cnblogs.com/,点击【新闻】再点击【本周】本次采集,我们以页面新闻标题为案例来采集。这里可以看到标题“李彦宏:以后不会存在“程序员”这种职业了”。1.1、分析请求F12打开开发者模式,然后点击Network后点......