将此for循环转换为while循环查找pi
import turtle
import math
import random
t = turtle.Turtle()
wn = turtle.Screen()
wn.setworldcoordinates(-400,-400,400,400)
t.pu()
t.speed(0)
t.goto(0,-400)
t.pd()
t.color("green")
t.circle(400)
t.color("red")
hits=0.0
numdarts = 100
for i in range(numdarts):
randx = random.uniform(-1,1)
randy = random.uniform(-1,1)
if (randx**2+ randy**2)<1:
hits+=1.0
t.pu()
t.goto(400*randx,400*randy)
t.pd()
t.dot()
print 4*(hits/numdarts)
wn.exitonclick()
想要使用while循环代替估算pi的值,给出可接受的近似误差量
答案 0 :(得分:0)
你只需要检查numdarts是否是bisher而不是0和倒计时numdarts。 像这样:
numdarts =100
while numdarts > 0:
numdarts-=1
[rest of Loop]
虽然我没有看到,为什么你应该在这个特殊用例中执行此操作,因为你可能遇到无限循环。
答案 1 :(得分:0)
将此for
循环转换为while
循环:
i = 0
while True:
#your code
i += 1
if i == numdarts:
break
这基本上保持从0到99的循环,与范围(100)相同