Python 利用turtle库使用蒙特卡洛方法计算圆周率
from random import random
import turtle as t
from math import sqrt
darts = 10000
hits = 0
t.penup()
t.speed(0)
t.tracer(False)
for i in range(1,darts + 1):
x = random()
y = random()
dist = sqrt(x**2 + y**2)
t.goto(x*300,y*300)
t.pendown()
if dist <= 1.0:
hits += 1
t.dot(2,'red')
else:
t.dot(2,'blue')
t.penup()
t.tracer(True)
print(4*(hits/darts))
t.goto(110,-30)
pi = 'pi='+str(4*(hits/darts))
t.write(pi,font=('consolas',15,'normal'))
t.exitonclick()
图片实例
点的大小为3,次数为10000次
点的大小为2,次数为50000次