用python计算π值(模拟法)

最近在更学校里的老师学习python,在计算π值时发现老师给的代码运行不了

      原理如图所示,向图形内随机丢点,只要点的基数足够大,我们就可以用n(紫点)/[n(紫点)+n(蓝点]近似得出π值

       开始使用的是clock函数,后来系统报错

from random import  random
from math import  sqrt
from time import clock

DARTS= 1000000
hits = 0.0
clock()
for i in range(1,DARTS+1):
    x,y = random(),random()
    dist = sqrt(x**2 + y**2)
    if dist <= 1.0:
        hits = hits+1
pi = 4*(hits/DARTS)
print("pi值是{}.".format(pi))
print("运行时间是:{:5.5}s".format(clock()))

结果如图:

 系统显示这个不存在于time库里

 在网上搜索才发现这个函数在py3.8被移除,换用了time.perf_counter()函数

新代码如下:

from random import  random
from math import  sqrt
import time

t = time.perf_counter()
DARTS= 1000000
hits = 0.0
for i in range(1,DARTS+1):
    x,y = random(),random()
    dist = sqrt(x**2 + y**2)
    if dist <= 1.0:
        hits = hits+1
pi = 4*(hits/DARTS)
print("pi值是{}.".format(pi))
print("运行时间是:{:5.5}s".format(t))

运行结果如图:

 

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值