python学习笔记(8)--random库的使用

时间:2021-07-24 01:31:43

伪随机数:采用梅森旋转算法生成的伪随机序列中元素

使用random库

一、基本随机函数

随机数需要一个种子,依据这个种子通过梅森旋转算法产生固定序列的随机数。
seed(a=None)  初始化给定的随机数种子,默认为当前系统时间

random()   生成一个[0.0,1.0)之间的随机小数

>>> import random
>>> random.seed()
>>> random.random()
0.6229016948897019
>>> random.random()
0.7417869892607294
>>> random.seed()
>>> random.random()
0.6229016948897019

使用seed主要是在某些系统各种,根据这个随机种子,可以复现问题,如果不使用种子,则默认为当前系统的精度很大的时间,这个无法再重现。

二、扩展随机函数

randint(a,b)             生成一个[a,b]之间的整数

randrange(m,n[,k])  生成一个[m,n)之间以k为步长的随机整数

getrandbits(k)         生成一个k比特长的随机整数

uniform(a,b)           生成一个[a,b]之间的随机小数

choice(seq)            从序列seq中随机选择一个元素

shuffle(seq)           将序列seq中元素随机排列,返回打乱后的序列

>>> random.randint(,)

>>> random.randrange(,,)

>>> random.uniform(,)
69.04468457583359
>>> random.getrandbits() >>> random.choice([,,,,,,]) >>> s=[,,,,,,]
>>> random.shuffle(s)
>>> s
[, , , , , , ]

三、圆周率计算问题

圆周率的计算,除了使用一个复杂的数学公式外,还可以通过计算机来模拟最初圆周率的计算方法蒙特卡罗方法。蒙特卡罗方法是指随机的在这个圆所在的正方形中撒粒子,然后计算圆中粒子的个数,依次来计算圆的面积,或者圆周率。那么现在计算机这个聪明,我们就可以通过计算机来模拟随机粒子,来计算圆周率。代码如下:

#getPi.py
from random import random
from time import perf_counter
DARTS = *
hits=0.0
start=perf_counter()
for i in range(,DARTS):
x, y = random(),random()
dist = pow(x** + y**, 0.5)
if dist <= 1.0:
hits +=
pi = *(hits/DARTS)
print("圆周率是:{}".format(pi))
print("运行时间为:{:.5f}s".format(perf_counter() - start))