方法1,计算思维,用数学的方法求pi

程序如下:
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))
方法2,计算思维,蒙特卡洛方法,往正方形区域内循环撒点,统计落到⚪内的点的数量。

程序如下:
import random
import time
start=time.perf_counter()
N=1000*10000
hits=0.0
for i in range(N):
x,y= random.random(),random.random()
if pow(x**2+y**2,0.5)<=1.0:
hits=hits+1
pi=4*hits/N
stop=time.perf_counter()
print("圆周率为:{},所用时间:{}".format(pi,stop-start))
计算结果:
圆周率为:3.142066,所用时间:8.770343299999999
这些点产生的结果不够准确哦!
posted on
浙公网安备 33010602011771号