09.3 python基础--random库

09.3.1 简介
使用随机数的python标准库,用于产生随机数
09.3.2 函数

基本随机数函数

+ seed() :给随机数对象一个种子值,用于产生随机序列,完全相同的种子产生的随机数列是相同的,所以如果想产生不同的随机数就需要用当前时间作为种子
random.seed(0)
print "Random number with seed 0 : ", random.random()
random.seed(0)
print "Random number with seed 0 : ", random.random()
random.seed(0)
print "Random number with seed 0 : ", random.random()

>Random number with seed 0 : 0.844421851525
>Random number with seed 1 : 0.844421851525
>Random number with seed 2 : 0.844421851525
random.seed(0)
print "Random number with seed 0 : ", random.random()
random.seed(1)
print "Random number with seed 1 : ", random.random()
random.seed(2)
print "Random number with seed 2 : ", random.random()

>Random number with seed 0 : 0.844421851525
>Random number with seed 1 : 0.134364244112
>Random number with seed 2 : 0.956034271889
+ random():生成一个[0.0,1.0)之间的随机小数

扩展随机数函数

+ randint(a,b):生成一个a~b之间的整数
import random
n = random.randint(10,100)
print(n)
>42
+ randrange(m, n[, k]):生成一个[m,n]之间以k为步长的随机整数
import random
n = random.randrange(10,100,10)
print(n)
>60
+ getrandbits(k):生成一个k比特长的随机整数
import random
n = random.getrandbits(10)
print(n)
>713
+ uniform(a,b):生成一个[a,b]之间的随机小数
import random
n = random.uniform(10,100)
print(n)
>14.641504182041913
+ choice(seq):从序列seq中随机选择一个元素
import random
n = random.choice([1,2,3,4,5,6,7,8,9,0,])
print(n)
>6
+ shuffle(seq):打乱序列并重新排列
import random
l=[1,2,3,4,5,6,7,8,9,0]
random.shuffle(l)
print(l)
>[3, 4, 1, 8, 0, 6, 7, 2, 5, 9]
09.3.3 圆周率的计算

根据公式计算

import random
pi = 0
n = 1000
for i in range(n):
    pi +=1/pow(16,i)*\
         (4/(8*i+1)-2/(8*i+4)-\
          1/(8*i+5)-1/(8*i+6))
print('圆周率的值是:{:.10f}'.format(pi))

>圆周率的值是:3.1415926536

随机概率计算方法

from random import random
from time import perf_counter
s =1000*1000
n = 0
start = perf_counter()
for i in range(1,s+1):
    x,y=random(),random()
    l = pow(x**2+y**2,0.5)
    if l <= 1:
        n += 1
pi = 4*(n/s)
print('圆周率的值是:{}'.format(pi))
print('运行时间是:{:.5f}s'.format(perf_counter()-start))

>圆周率的值是:3.138736
>运行时间是:2.67644s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值