from time import clock
在采用蒙特卡罗方法求解π值时,出现上述报错,这是因为time.clock()在3.3版本后已移除,可使用perf_counter()或者process_time()代替。
#----计算pi的值----
from random import random
from math import sqrt
from time import perf_counter
DARTS=100000 #抛点数
hits=0.0
perf_counter()
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("运行时间是:{:.5f}s".format(perf_counter()))
pi值是3.13708
运行时间是:0.50865s
计算得到的π值为3.137,与大家熟知的3.1415相差甚远,原因是DARTS点数量较少,无法更精确刻画面积的比关系。