Python学习笔记——CSDN学习记录二十九:随机函数模块

random 随机函数模块

一、seed() 与 random() 函数:

        1. seed() 函数初始化一个随机种子,默认是当前系统时间。

        2. random() 函数生成一个 [0.0, 1.0] 之间的随机小数。

        3. 示例:

import random

random.seed(10)

x = random.random()
print(x)


# 输出结果:
#   
#       0.5714025946899135

        4. random.seed() 函数通过 seed() 函数可以每次生成相同的随机数,如:

import random

random.seed(10)

x = random.random()
print(x)

random.seed(10)

y = random.random()
print(y)


# 输出结果:
#   
#       0.5714025946899135
#       0.5714025946899135

                · 在不同的代码上获取的值是不同的,但 x 与 y 是相同的。

二、getstate() 与 setstate(state) 函数:

        1. getstate() 函数用于记录随机数生成器的状态。

        2. setstate() 函数用于将生成器恢复到上次记录的状态。

        3. 示例:

import random

state_tuple = random.getstate()

for i in range(4):
    print(random.random())

print("*"*20)

random.setstate(state_tuple)

for j in range(4):
    print(random.random())


# 输出结果:
#   
#       0.49823674937029105
#       0.2084025522915729
#       0.7607231706339623
#       0.878836147845224
#       ********************
#       0.49823674937029105
#       0.2084025522915729
#       0.7607231706339623
#       0.878836147845224

                · 输出的两次随机数一致。

三、randint() 与 randrange() 函数:

        1. randint():生成一个 [x, y] 区间内的整数。

                语法格式:

                        random.randint(start,stop)

        2. randrange():生成一个 [m, n) 区间之内以 k 为步长的随机整数。

                语法格式:

                        random.randrange(start,stop,step)

                        · 如果函数调用时只有一个参数,默认是从 0 开始到这个数,步长为 1。如:

import random

for i in range(3):

    print("*"*5)
    print(random.randrange(10))
    print(random.randrange(5,10))
    print(random.randrange(5,100,5))


# 输出结果:
#   
#       *****
#       3
#       6
#       55
#       *****
#       8
#       7
#       80
#       *****
#       0
#       9
#       50

        3. 示例:

import random

x = random.randint(1,10)
print(x)

y = random.randrange(1,10,2)
print(y)


# 输出结果:
#   
#       2
#       7

四、getrandbits(k) 与 choice(seq) 函数:

        1. getrandbits(k):生成一个 k 比特长的随机整数,实际输出的是 k 位二进制数转换成的十进制数。如:

import random

x =  random.getrandbits(5) # 生成长度是00000-11111

print(x)

print(bin(x))


# 输出结果:
#   
#       8
#       0b1000

        2. choice(seq):从序列中随机选择一个元素。如:

import random

my_list = 'Jelly'

for i in range(4):
    print(random.choice(my_list))


# 输出结果:
#   
#       l
#       J
#       y
#       J

五、shuffle(seq) 与 sample(pop, k) 函数:

        1. shuffle(seq):将原序列中的元素随机排列,并且原序列被修改。如:

import random

my_list = [1,2,3,4,5,6,7,8,9]

random.shuffle(my_list)

print(my_list)


# 输出结果:
#   
#       [3, 2, 4, 1, 6, 5, 7, 8, 9]

                · shuffle() 函数只能用于可变序列。

        2. sample(pop, k):从原序列中随机选择 k 个元素,原序列不变。如:

import random

my_list = ["梦想", "Jelly", 1, 2, [3, 4]]

ls = random.sample(my_list, 4)

print(ls)


# 输出结果:
#   
#       [2, 1, 'Jelly', '梦想']

六、uniform(a, b)、betavariate() 和 triangular() 函数:

        1. uniform():生成一个 [a, b] 之间的随机小数,采用等概率分布。

        2. betavariate():生成一个 [0, 1] 之间的随机小数,采用 beta 分布。

        3. triangular():生成一个 [low, high] 之间的随机小数,采用三角分布。

七、其他随机分布函数:

        1. expovariate:生成一个 (0, +∞) 之间的随机函数,指数分布;

        2. gammavariate:采用 gamma 分布;

        3. gauss:采用高斯(正态)分布;

        4. lognormvariate:对数正态分布;

        5. normalvariate:正态分布;

        6. vonmisesvariate:冯米塞斯分布;

        7. paretovariate:帕累托分布;

        8. weibullvariate:韦伯分布。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HaJucy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值