嵩天老师用蒙特卡罗方法和python求圆周率详细代码解析

from time import perf_counter
from random import random
start=perf_counter()
x=10
sum=0
while x>0:
    zheng= 10000*10000 #相当于正方形的面积
    yuan=0 #相当于圆的面积
    for i in range(1,zheng):
        a,b=random(),random()
        r=pow(a**2+b**2,0.5) #用勾股定理求到圆心的距离(圆的半径)
        if r<=1:
            yuan = yuan+1
    pi=4*(yuan/zheng)
    x=x-1
    sum = sum +pi
print('10次平均值:π={:.7f}'.format(sum/10))
print('亿次循环耗时:{:.2f}秒'.format(perf_counter()-start))

 

你可能感兴趣的:(嵩天老师用蒙特卡罗方法和python求圆周率详细代码解析)