math库和random库

来源:互联网 发布:马尔科夫转移矩阵 编辑:程序博客网 时间:2024/06/08 03:05

MATH库

ceil(x)  对浮点数向上取整 

floor(x)  对浮点数向下取整 

pow(x,y) 计算x的y次方 

log(x) 以e为基的对数 

log10(x) 以10为基的对数 

sqrt(x) 平方根

exp(x) e的x次幂

degrees(x) 将弧度值转换成角度 

radians(x) 将角度值转换成弧度 

sin(x) 正弦函数 

cos(x)余弦函数 

tan(x) 正切函数 

asin(x) arcsin x 反正弦函数,x  ∊[-1.0,1.0] 

acos(x) arccos x 反余弦函数,x  ∊[-1.0,1.0] 

atan(x) arctan x 反正切函数,x  ∊[-1.0,1.0]

random库

seed(x) 给随机数一个种子值,默认随机种子是系统时钟 

random() 生成一个[0, 1.0)之间的随机小数 

uniform(a,b) 生成一个a到 b之间的随机小数 

randint(a,b) 生成一个a到 b之间的随机整数 

randrange(a,b,c) 随机生成一个从a开始到b以c递增的数  

choice(<list>) 从列表中随机返回一个元素 

shuffle(<list>)将列表中元素随机打乱 

sample(<list>,k)从指定列表随机获取k个元素

      当设定相同的种子后,每次调用随机函数后生成的随机 数都是相同的。这就是随机种子的作用。

因为计算机是一个确定设备,不能生成真正的随机数。所以,由计算机产生的随机数都是由一个种子开始的伪随机序列。相同的随机种子产生相同的伪随机数序列,也有利于程序的验证执行。


利用蒙特卡洛方法计算π值:

程序如下:

# pi.py

from random import random

from math import sqrt

from time import clock

DARTS = 1200

hits = 0

clock()

for i in range(1,DARTS):    

x, y = random(), random()    

dist = sqrt(x**2 + y**2)    

if dist <= 1.0:        

hits = hits + 1

pi = 4 * (hits/DARTS)

print("Pi的值是 %s" % pi)

print("程序运行时间是 %-5.5ss" % clock())

解释:输入:抛点的数量 

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

输出:π值

原创粉丝点击