码迷,mamicode.com
首页 > 其他好文 > 详细

圆周率的计算【random库的应用】

时间:2020-03-23 22:15:36      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:idt   https   pow   默认   border   调用   rom   none   its   

圆周率的计算

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

求解圆周率可以采用蒙特卡罗方法,在一个正方形中撒点,根据在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库的应用】

标签:idt   https   pow   默认   border   调用   rom   none   its   

原文地址:https://www.cnblogs.com/Anjoras-bk/p/12555414.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!