数学公式的代码实现
#CalPiV1.py pi = 0 N = 100 for k in range(N): pi +=1/pow(16,k)*(\ 4/(8*k+1) - 2/(8*k+4) - \ 1/(8*k+5) - 1/(8*k+6)) #\用于换行 print("圆周率值是:{}".format(pi)) 运行结果: >圆周率值是:3.141592653589793蒙特卡罗法代码实现
#CalPiV2.py from random import random from time import perf_counter #引入计时器 DARTS = 1000*1000*10 #定义投掷次数 hits = 0.0 #命中数 start = perf_counter() 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("圆周率值是:{}".format(pi)) print("运行时间是:{:.5f}s".format(perf_counter()-start)) 运行结果: >圆周率值是:3.1413208 运行时间是:10.56413s数学思维:利用近似公式 计算思维:抽象一种过程,利用计算机自动化求解 程序性能利用perf_counter观测