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

求圆周率_IT

 

程序如下:

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

求圆周率_IT_02

 

程序如下:

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

这些点产生的结果不够准确哦!