//Python学习// 第3周 pi的计算实例

  • Post author:
  • Post category:python




π的计算



随机向单位正方形和圆结构抛洒大量点,对于每个点,

可能在圆内或者圆外,当随机抛点数量达到一定程度,

圆内点将构成圆的面积,全部抛点将构成矩形面积。圆

内点数除以圆外点数就是面积之比,即π/4。随机点数

量越大,得到的π值越精确。



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



输入:抛点的数量

处理:对于每个抛洒点,计算点到圆心的距离,通过

距离判断该点在圆内或是圆外。统计在圆内点的数量

输出:π值



代码:

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())

用到了random、math、time三个库,三个库介绍如下:

random库是使用随机数的python的标准库;

math库

包含的函数有: 圆周率pi 、 自然常数e (15位小数) ;

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

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

pow(x, y) 、 log(x)、 log10(x)  、 sqrt(x) 、 exp(x) 、 degrees(x) : 将弧度值转换成角度 ; radians(x) : 将角度值转换成弧度值; sin(x) 、cos(x)、tan(x)、asin(x)反正弦函数、acos(x)、atan(x)

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(<lsit>) : 从列表中随机返回一个元素

shuffle(<list>) : 将列表中的元素打乱

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

计算π值:(蒙特卡洛方法,利用随机试验)

time库:


https://blog.csdn.net/ZZh1301051836/article/details/79013744



版权声明:本文为Kathleen_yuan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。