python蒙特卡洛求pi,并利用TurTle库实现计算过程的可视化
时间: 2024-03-05 16:51:43 浏览: 120
好的,下面是代码实现:
```python
import random
import turtle
# 设置画布大小和背景颜色
turtle.setup(800, 800)
turtle.bgcolor("black")
# 绘制正方形和圆形
turtle.speed(10)
turtle.penup()
turtle.goto(-300, -300)
turtle.pendown()
turtle.color("white")
for i in range(4):
turtle.forward(600)
turtle.left(90)
turtle.penup()
turtle.goto(0, 0)
turtle.pendown()
turtle.color("red")
turtle.circle(300)
# 利用蒙特卡洛方法求解π,并可视化计算过程
n = 1000
count = 0
for i in range(n):
x = random.uniform(-300, 300)
y = random.uniform(-300, 300)
turtle.penup()
turtle.goto(x, y)
if x ** 2 + y ** 2 <= 300 ** 2:
turtle.color("green")
count += 1
else:
turtle.color("blue")
turtle.pendown()
turtle.dot(5)
pi = count / n * 4
print("π的值为:", pi)
turtle.penup()
turtle.goto(0, -350)
turtle.write("π的值为:" + str(pi), align="center", font=("Arial", 30, "normal"))
turtle.done()
```
这段代码与之前的代码类似,只不过在每次生成坐标点时,我们都用Turtle库在画布上绘制了一个小点,并根据点的位置和是否在圆内,设置了不同的颜色。这样,我们就可以在画布上看到蒙特卡洛方法的计算过程了。
当然,在这里我们只生成了1000个点,因此可视化效果可能不是很好。如果你想要更好的效果,可以将n的值增大一些。不过要注意,n越大,计算时间就会越长。
阅读全文