random模块

2023-12-17 20:01:38

????????随机性在计算机编程和数据科学中扮演着至关重要的角色。Python中的random模块提供了丰富的工具和函数,帮助我们生成随机数、操作随机序列,以及模拟随机性事件。

????????在本文中,我们将分享random模块,了解它的基本用法、功能和应用领域,并提供示例代码来帮助你更好地理解随机性的神奇世界。

【 一?】介绍random模块

????????Python中的random模块是一个伪随机数生成器的工具包,它可以生成随机数,进行随机序列操作,以及模拟随机性事件。虽然生成的数字实际上是伪随机的,但它们在大多数应用中足够随机。

????????以下是一些random模块的常见用途:

  • random.random():用于生成一个 [0, 1) 范围内的浮点数,即随机数的范围是大于等于 0,小于 1。
  • random.randint(a, b)用于生成一个 [a, b] 范围内的整数,即随机数的范围是大于等于 a,小于等于 b。
  • random.choice(seq)用于从序列?seq?中随机选择一个元素,并返回该元素。
  • random.shuffle(seq)用于将序列?seq?中的元素随机打乱顺序(洗牌)。
  • random.sample(population, k)从总体?population?中随机选择?k?个样本,返回一个列表。

让我们从基本的随机数生成开始,逐步深入了解random模块的功能和用法。

【 二?】 随机数生成

【1】生成随机整数

# 产生[1,10]范围内的随机整数
sui_int = random.randint(1,10)
print(sui_int)
#4

【2】生成随机浮点数

# 生成【 0 , 1) 范围内的随机浮点数
sui_float = random.random()
print(sui_float)
#0.46444803201921825

【 3 】随机序列操作

# 从序列中随机选择一个元素
seq = ['mao','jing','yi','wo']
sui_elem = random.choice(seq)
print(sui_elem)
#jing

【 4 】将序列中的元素随机打乱顺序

seq2 = [1,2,3,4,5,6,7,8,9]
random.shuffle(seq2)
print(seq2)
# [9, 7, 4, 8, 2, 6, 5, 1, 3]

【 5 】从总体中选取多个样本

ran = range(1,51)
sample = random.sample(ran,10)
print(sample)
# [44, 48, 40, 8, 2, 30, 12, 42, 50, 26]

【6】高级用法

1.概率分布函数

import random

# 1.概率分布函数
rand_uniform = random.uniform(1,10)#生成[]1,10]范围内的均匀分布随机数
print(rand_uniform)
#9.709411335773915
# 生成服从正态分布的随机数
rand_normal = random.gauss(0,1)#生成均值为0,标准差为1的正态分布随机数
print(rand_normal)
#1.5885337422817989

2.随机种子设置:

random.seed(42)

3.自定义概率分布:

import numpy as np

# 生成符合指定概率分布的随机数
custom_distribution = np.random.choice([1, 2, 3, 4], size=10, p=[0.1, 0.3, 0.4, 0.2])
print(custom_distribution)

【 三 】应用领域

随机性在许多领域中都有应用,包括:

总之,random模块可以在许多不同的应用领域中提供随机性和不确定性,用于增加变化性、增强安全性、模拟数据等。它是处理随机性需求的有力工具之一。

  1. 游戏开发:在游戏中,随机性是非常重要的,可以用来创建随机地图、生成随机敌人、决定游戏中的随机事件等。random模块可以用来生成随机数,在游戏中添加更多的变化和乐趣。

  2. 数据采样和模拟:在数据科学和统计学中,需要对数据进行采样和模拟。random模块可以用来生成服从特定分布的随机数,例如正态分布、均匀分布等,以及进行随机抽样。

  3. 密码生成器:随机性是密码生成器的重要特征之一,可以使用random模块生成随机的密码字符或密码短语。通过设置随机种子、选择随机范围和长度,可以生成强密码来增加安全性。

  4. 数据增强:在机器学习和深度学习中,数据增强是一种常用的技术,用于增加训练数据的多样性和泛化能力。random模块可以用来进行图像旋转、翻转、平移、缩放等随机变换,增加数据的多样性。

  5. A/B测试:在市场营销和产品开发中,A/B测试是一种常用的技术,用于比较两个或多个变体的效果。random模块可以用来随机分配用户到不同的测试组,并生成随机的实验结果,以进行统计分析。

【 四 】六位随机数字+大小写验证码

import random
import string


def generate_verification_code():
    code = ''

    # 生成六位随机数字
    for i in range(6):
        code += str(random.randint(0, 9))

    # 生成两个随机大小写字母
    for i in range(2):
        code += random.choice(string.ascii_letters)

    # 打乱验证码顺序
    code_list = list(code)
    random.shuffle(code_list)
    code = ''.join(code_list)

    return code


# 生成验证码并打印
verification_code = generate_verification_code()
print(verification_code)

文章来源:https://blog.csdn.net/m0_58310590/article/details/135047131
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。