海龟可视化投点求Π法

学习时发现网上没有相关的,就玩了会海龟

import random
import turtle
turtle.delay(1)
turtle.hideturtle()
hits = 0
turtle.speed(0)
turtle.setup(width=1000,height=1000)
turtle.penup()
times = int(input('请输入掷飞镖的次数'))
a ="投掷飞镖总次数:"
b ="击中圆内飞镖数:"
e = "目前圆周率估算情况:"
o = "散点图绘制完成"
turtle.goto(0,-500)
turtle.pendown()
turtle.pencolor('green')
turtle.circle(500)
turtle.penup()
turtle.pencolor('black')
turtle.goto(-480,470)
turtle.pendown()
turtle.write(a, font=("微软雅黑", 14, "normal"))
turtle.penup()
turtle.goto(-480, 390)
turtle.pendown()
turtle.pencolor("black")
turtle.write(e, font=("微软雅黑", 14, "normal"))
turtle.penup()
turtle.goto(-340,470)
turtle.pendown()
turtle.pencolor("navy")
turtle.write(times, font=("微软雅黑", 14, "normal"))
turtle.penup()#总投掷数
turtle.goto(-480,430)
turtle.pendown()
turtle.pencolor("black")
turtle.write(b, font=("微软雅黑", 14, "normal"))
turtle.penup()
turtle.goto(-340,430)
turtle.pendown()
turtle.write(hits, font=("微软雅黑", 14, "normal"))
turtle.penup()#击中圆内飞镖数
for i in range (times):
    x=random.uniform(-1, 1)
    y=random.uniform(-1, 1)
    a1 = hits
    if x*x + y*y <= 1:
        turtle.goto(x*500,y*500)
        turtle.pendown()
        turtle.dot(10,"blue")
        turtle.penup()
        turtle.goto(-340, 430)
        turtle.pencolor("white")
        turtle.pendown()
        turtle.write(hits, font=("微软雅黑", 14, "normal"))
        turtle.penup()
        hits += 1
        turtle.goto(-340, 430)
        turtle.pencolor("plum")
        turtle.pendown()
        turtle.write(hits, font=("微软雅黑", 14, "normal"))
        turtle.penup()

        a2 = ("%.4f" %((a1 / times)*4))
        d = ("%.4f" %((hits / times)*4))

        turtle.penup()
        turtle.goto(-300, 390)
        turtle.pencolor("white")
        turtle.pendown()
        turtle.write(a2, font=("微软雅黑", 14, "normal"))
        turtle.penup()
        turtle.goto(-300, 390)
        turtle.pencolor('purple')
        turtle.pendown()
        turtle.write(d, font=("微软雅黑", 14, "normal"))
        turtle.penup()
    else:
        turtle.goto(x*500,y*500)
        turtle.pendown()
        turtle.dot(10, "red")
        turtle.penup()
turtle.goto(-480,350)
turtle.pencolor('blue')
turtle.pendown()
turtle.write(o, font=("微软雅黑", 14, "normal"))
turtle.penup()
turtle.done()

效果如下:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cola_Dream

大学生在线乞讨(滑稽)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值