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

没错,你没有看错!求圆周率从古至今有许多五花八门的方法,其中主要有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

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

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

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值