第四课--random库

 

import random
random.seed()       # 按时间随机
print(random.random())
import random
random.seed()       # 按时间随机
print(random.random())
print(random.randint(1,100))        # randint(a,b) 随机产生[a,b]中的一个整数
print(random.randrange(10,100,10))  # randrange(m,n,k) 随机产生[m,n)中以k为步长的一个整数
print(random.getrandbits(16))       # getrandbits(k) k比特长的随机数
print(random.uniform(10,100))       # uniform(a,b) 随机产生[a,b]中的一个小数
seq = [1,2,3,4,5]
print(random.choice(seq))           # chioce(seq) 在seq序列中随机一个
random.shuffle(seq)                 # shuffle(seq) 随机排序
print(seq)

圆周率的计算:

# 公式法
pi = 0
N = 100
for k in range(N) :
    pi += 1 / pow(16,k) * ( 4 / (8 * k + 1) - 2 / (8 * k + 4) - 
        1 / (8 * k + 5) - 1 / (8 * k + 6) )
print("圆周率 = {}".format(pi))
# 圆周率 = 3.141592653589793

# 蒙特卡罗
from random import random
from time import perf_counter
DARTS = 1000 * 1000
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)
    if(dist <= 1.0) :
        hits += 1
pi = 4 * (hits / DARTS)
print("圆周率 = {}".format(pi))
print("运行时间 = {:.5f}s".format(perf_counter() - start))
# 圆周率 = 3.140192
# 运行时间 = 1.07717s

2021-01-25

原文地址:https://www.cnblogs.com/2015-16/p/14323175.html