Python math库和random库

1、math库

 1 >>> from math import *
 2 >>> 2*pi
 3 6.283185307179586
 4 >>> e
 5 2.718281828459045
 6 >>> ceil(2.3)
 7 3
 8 >>> floor(2.3)
 9 2
10 >>> pow(2,3)
11 8.0
12 >>> log(e)
13 1.0
14 >>> log10(100)
15 2.0
16 >>> sqrt(16)
17 4.0

 1 >>> from math import *
 2 >>> exp(2)
 3 7.38905609893065
 4 >>> e**2
 5 7.3890560989306495
 6 >>> degrees(pi)
 7 180.0
 8 >>> radians(120)
 9 2.0943951023931953
10 >>> sin(pi/2)
11 1.0
12 >>> cos(pi/3)
13 0.5000000000000001
14 >>> tan(pi/4)
15 0.9999999999999999
16 >>> atan(1)
17 0.7853981633974483
18 >>> asin(1)
19 1.5707963267948966
20 >>> acos(1)
21 0.0

2、random库

 1 from random import *
 2 >>> random()
 3 0.6606648937887478
 4 >>> uniform(1,10)
 5 8.316837423419921
 6 >>> randint(1,10)
 7 5
 8 >>> randrange(0,10,2)
 9 4
10 >>> randrange(0,10,2)
11 8
12 >>> randrange(0,10,2)
13 6
14 >>> randrange(0,10,2)
15 0
16 >>> ra=[0,1,2,3,4,5,6,7,8,9]
17 >>> choice(ra)
18 1
19 >>> shuffle(ra)
20 >>> ra
21 [0, 2, 3, 9, 7, 8, 5, 6, 1, 4]
22 >>> sample(ra,4)
23 [1, 8, 5, 9]

3、随机种子

 1 >>> seed(10)
 2 >>> random()
 3 0.5714025946899135
 4 >>> random()
 5 0.4288890546751146
 6 >>> random()
 7 0.5780913011344704
 8 >>> seed(1)
 9 >>> random()
10 0.13436424411240122
11 >>> random()
12 0.8474337369372327
13 >>> seed(10)
14 >>> random()
15 0.5714025946899135
16 >>> random()
17 0.4288890546751146
18 >>> random()
19 0.5780913011344704

可以看出,通过随机种子生成的是伪随机数。

4、蒙特卡洛(Monte Carlo)方法

又称随机抽样或统计试验方法。当所求解问题是某种事件出现的概率,或某随机变量期望值时,可以通过某种“试验”的方法求解。简单说,蒙特卡洛是利用随机试验求解问题的方法。 

π计算问题的IPO表示如下:

输入:抛点的数量

处理:对于每个抛洒点,计算点到圆心的距离,通过距离判断该点在圆内或是圆外。统计在圆内点的数量

输出:π值

 1 from math import sqrt
 2 from random import random
 3 from time import clock #时间库
 4 
 5 Darts=150000  #投掷次数
 6 hits=0 #击中次数
 7 clock()
 8 for i in range(Darts):
 9     x,y=random(),random()  #同步赋值
10     if sqrt((x**2+y**2))<=1:
11         hits=hits+1
12 pai=4*hits/Darts
13 print("Pi的值是:%f"%pai)
14 print("程序运行时间%s s"%clock())

 

posted on 2017-08-09 00:53  箬笠蓑衣  阅读(579)  评论(0编辑  收藏  举报