1、math库
>>> from math import *
>>> 2*pi
6.283185307179586
>>> e
2.718281828459045
>>> ceil(2.3)
3
>>> floor(2.3)
2
>>> pow(2,3)
8.0
>>> log(e)
1.0
>>> log10(100)
2.0
>>> sqrt(16)
4.0
>>> from math import *
>>> exp(2)
7.38905609893065
>>> e**2
7.3890560989306495
>>> degrees(pi)
180.0
>>> radians(120)
2.0943951023931953
>>> sin(pi/2)
1.0
>>> cos(pi/3)
0.5000000000000001
>>> tan(pi/4)
0.9999999999999999
>>> atan(1)
0.7853981633974483
>>> asin(1)
1.5707963267948966
>>> acos(1)
0.0
2、random库
from random import *
>>> random()
0.6606648937887478
>>> uniform(1,10)
8.316837423419921
>>> randint(1,10)
5
>>> randrange(0,10,2)
4
>>> randrange(0,10,2)
8
>>> randrange(0,10,2)
6
>>> randrange(0,10,2)
0
>>> ra=[0,1,2,3,4,5,6,7,8,9]
>>> choice(ra)
1
>>> shuffle(ra)
>>> ra
[0, 2, 3, 9, 7, 8, 5, 6, 1, 4]
>>> sample(ra,4)
[1, 8, 5, 9]
3、随机种子
>>> seed(10)
>>> random()
0.5714025946899135
>>> random()
0.4288890546751146
>>> random()
0.5780913011344704
>>> seed(1)
>>> random()
0.13436424411240122
>>> random()
0.8474337369372327
>>> seed(10)
>>> random()
0.5714025946899135
>>> random()
0.4288890546751146
>>> random()
0.5780913011344704
可以看出,通过随机种子生成的是伪随机数。
4、蒙特卡洛(Monte Carlo)方法
又称随机抽样或统计试验方法。当所求解问题是某种事件出现的概率,或某随机变量期望值时,可以通过某种“试验”的方法求解。简单说,蒙特卡洛是利用随机试验求解问题的方法。
π计算问题的IPO表示如下:
输入:抛点的数量
处理:对于每个抛洒点,计算点到圆心的距离,通过距离判断该点在圆内或是圆外。统计在圆内点的数量
输出:π值
from math import sqrt
from random import random
from time import clock #时间库 Darts=150000 #投掷次数
hits=0 #击中次数
clock()
for i in range(Darts):
x,y=random(),random() #同步赋值
if sqrt((x**2+y**2))<=1:
hits=hits+1
pai=4*hits/Darts
print("Pi的值是:%f"%pai)
print("程序运行时间%s s"%clock())