用python里的turtle求圆周率?!?!

本文通过Python的turtle库演示了利用概率法来估算圆周率的方法。在正方形内画一个圆,随机在区域内打点,统计落在圆内的点数与总点数的比例,以此比例乘以4即可得到圆周率的近似值。通过不断迭代增加点的数量,可以逐步提高圆周率的精确度。最终,代码会显示估算出的圆周率值,直到接近3.1415926时停止。
摘要由CSDN通过智能技术生成

没错,你没有看错!求圆周率从古至今有许多五花八门的方法,其中主要有7类方法:割圆术、分析法、沙-波法、椭圆积分法、概率法等。而我们要用python中的turtle实现的,是概率法。

我们只需要在方中圆中随机打点,根据点的数量得出圆和方的大致面积,再用公式求出圆的大致周长和正方形的边长(也就是圆的直径),最后求出大致圆周率。

import turtle as t
import random
t2=t.Turtle()
t.speed(0)
t.penup()
t.goto(x=-200,y=200)
t.pendown()
for i in range(4):
    t.forward(400)
    t.right(90)
t.penup()
t.goto(x=0,y=-200)
t.pendown()
t.circle(200)
m=0
n=0
t2.penup()
t2.goto(x=-65,y=-300)
t2.pendown()
t.hideturtle()
t2.hideturtle()
while True:
    a=random.randint(-200,200)
    b=random.randint(-200,200)
    t.penup()
    t.goto(x=a,y=b)
    t.pendown()
    if t.distance(x=0,y=0)>200:
        t.dot(4.5,"black")
    else:
        t.dot(4.5,"purple")
        n+=1
    m+=1
    t2.clear()
    t2.write(round(n/m*4,7),font='微软雅黑')
    if round(n/m*4,7)==3.1415926:
        break

最终得出的图像上,圆内的点将被标识为紫色,圆外的将被标识为黑色。

(因截图原因,下面的圆周率没有显示,见谅!(你们自己试试)) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值