python实验使用蒙特卡洛方法计算圆周率

import random   #导入random随机
r = 2
fang=0
yuan=0
i = int(input("请输入扔飞镖的次数: "))
for j in range(1,i+1):
    x = random.uniform(-r,r)  #生成随机的x
    y = random.uniform(-r,r)  #生成随机的y
    a=x ** 2   #**表示幂
    b=y ** 2
    c=(a+b) ** 0.5
    if(c > r):
        fang=fang+1
    elif c <= r:
        yuan=yuan+1
        fang=fang+1
    else:  #极小概率出现在圆上
        continue
    if(fang==0): #分母不能为0
        continue
pai=yuan/fang*4
print(pai)

  要注意,random为真随机,所以每次生成的值不一定相同

posted @ 2021-06-04 15:01  正在奋击的红猪  阅读(805)  评论(0)    收藏  举报