圆周率的计算random库的应用

Posted anjoras-bk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了圆周率的计算random库的应用相关的知识,希望对你有一定的参考价值。

圆周率的计算

 ????????????????????????????????????????????????????????????????????????????????????????????????描述????????????????????????????????????????????????????????????????????????????????????????????????

求解圆周率可以采用蒙特卡罗方法,在一个正方形中撒点,根据在1/4圆内点的数量占总撒点数的比例计算圆周率值。????????????????????????????????????????????????????????????????????????????????????????????????

技术图片????????????????????????????????????????????????????????????????????????????????????????????????

请以123作为随机数种子,获得用户输入的撒点数量,编写程序输出圆周率的值,保留小数点后6位。????????????????????????????????????????????????????????????????????????????????????????????????

????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

输入输出示例

  输入 输出
示例 1
1024
3.218750
from random import seed   #调用random中函数seed()获取随机数种子
from random import random   #调用random中函数random()
DARTS= eval(input())    #输入撒点数量,数越大越准
seed(123)      #获取唯一确定的随机数列
hits= 0.0    #开始时命中圆内部的数量
for i in range(1, DARTS+1):
    x, y= random(), random()    #产生点的随机坐标
    dist= pow(x**2+ y**2,0.5)     #用点与圆心的距离判断是否在圆内
    if dist<= 1.0:
        hits= hits+1
pi= 4*(hits/ DARTS)     #得到圆周率的近似值
print("{:.6f}".format(pi))   #保留小数点后6位

  

其中涉及的知识点

random库

(1),seed(a)函数

   初始化给定的随机数种子(a) ,得到唯一确定的随机数列 。a = None 时默认当前系统时间 

   常与random库中其他函数叠用,a不变时与其他函数叠用得到唯一的随机数(举一反三实验复现)

(2),random()函数

   生成一个[0.0, 1.0]之间的随机小数

(3),randint( a, b)

   生成一个[ a, b]之间的整数

(4),randrange(M , N [ ,K])

   生成一个[ M, N ]间以K为步长的随机整数,[,K]可省,默认为1

(5),uniform( a, b)

   生成(a , b)之间随机小数 (16.f)

 

以上是关于圆周率的计算random库的应用的主要内容,如果未能解决你的问题,请参考以下文章

带进度条的圆周率计算

蒙特卡洛计算圆周率

有进度条圆周率计算

用python计算圆周率

计算思维:蒙特卡罗方法求“圆周率”

Python 利用random库来实现圆周率的运算