最近在更学校里的老师学习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))
运行结果如图: