如下图所示,正方形边长为1,圆的圆心为O(0,0),请采用蒙特卡洛法求PI。
蒙特卡罗方法适合于根据概率求出图形的面积
根据两个图形的面积求出某一个未知数据量
请随机产生10000个点,判断是否落到一个半径为1的1/4个圆内,
通过概率与一个边长为1的正方形的面积比值
算出π的数值,要求输出强制保留两位小数
import random m = 1000000#使用1000000个点进行计算 n = 0.0#计数落在圆中的点 for i in range(1,m+1): x,y = random.random(),random.random() dist = pow(x ** 2 + y ** 2,0.5) if dist <= 1.0: n = n+1 pi = 4*(n/m) print("圆周率值是:{:.2f}".format(pi))