random库函数讲解及实例应⽤
⼀、random库
random库是使⽤随机数的Python标准库。random库主要⽤于⽣成随机数。
由于计算机不能产⽣真正的随机数,所以伪随机数也就被称为随机数。
random库包括两类函数,常⽤的共8个。
基本随机数函数:seed(),random()
扩展随机数函数:randint(),getrandbits(),uniform(),randrange(),chonice(),shuffle()
⼆、基本随机数函数
1.seed(a=None)
初始化给定的随机数种⼦,默认为当前系统时间。
代码如下(⽰例):
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
2.random()
⽣成⼀个[0.0,1.0)之间的随机⼩数
代码如下(⽰例):
>>> import random
>>> random.seed(10)
>>> random.random()
0.5714025946899135
该处使⽤种⼦10,产⽣的第⼀个随机⼩数⼀定是0.57。
也可以不给定种⼦数,则默认的种⼦是当前调⽤第⼀次random函数所对应的系统时间,完全随机,不可再现。
三、扩展随机数函数
1.randint(a,b)
⽣成⼀个[a,b]之间的整数。
2.randrange(m,n[,k])
⽣成⼀个[m,n)之间以k为步长的随机整数
代码如下(⽰例):
>>> random.randrange(10,100,10)
10
>>> random.randrange(10,100,10)
40
>>> random.randrange(10,100,10)
80python生成1到100之间随机数
>>> random.randrange(10,100,10)
50
⽣成⼀个k⽐特长的随机整数。
代码如下(⽰例):
>>> andbits(16)
42825
4.uniform(a,b)
⽣成⼀个[a,b]之间的随机⼩数,精度为⼩数点后16位。代码如下(⽰例):
>>> random.uniform(0,100)
81.06187891977247
5.choice(seq)
从序列seq中随机选择⼀个元素。
代码如下(⽰例):
>>> random.choice([1,2,3,4,5,6,7,8,9,0])
1
>>> random.choice([1,2,3,4,5,6,7,8,9,0])
6
>>> random.choice([1,2,3,4,5,6,7,8,9,0])
2
6.shuffle(seq)
将序列seq中元素随机排序,返回打乱后的序列。
代码如下(⽰例):
>>> s=[1,2,3,4,5,6];random.shuffle(s);print(s)
[5, 4, 6, 1, 3, 2]
实例:圆周率的计算
圆周率的近似计算公式
蒙特卡罗⽅法:
代码如下:
#CalPiV2.py
from random import random
from time import perf_counter #程序运⾏计时
DARTS =1000*1000#在当前在抛撒点的总数量,100万
hits =0.0#⽬前在圆的⾥⾯的数量
start = perf_counter()#当前的系统时间,开始计时
for i in range(1, DARTS+1):
x, y = random(), random()#⽣成两个随机的坐标值,进⾏抛点
dist =pow(x **2+ y **2,0.5)#x^2+y^2的开⽅
if dist <=1.0:#如果到圆⼼的距离⼩于1.0,则在圆内
hits = hits +1
pi =4*(hits/DARTS)
print("圆周率值是: {}".format(pi))
print("运⾏时间是:{:.5f}s".format(perf_counter()-start))#运算时间
圆周率值是: 3.1419
运⾏时间是:0.73415s
总结
数学思维:到公式,利⽤公式求解。
计算思维:⽤计算机⾃动化求解。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论