我试图调整以下内容,以便最多运行10次然后放弃"它只是无限期地运行直到它找到答案。我可以把这个范围扩大到一个惊人的数字,但这不是作弊。
def f(x):
return x**2-2
def bisection(f,a,b):
for i in range (10):
c=(a+b)/2
if abs(f(c))<1/10**10:
print("found zero",c)
return c
if f(a)*f(c)<0:
a=a
b=c
else:
a=c
b=b
print("a=",a,"b=",b,"f(a)=",f(a))
bisection(f,0,2)
我尝试过交换
for i in range (10):
与
c=(a+b)/2
while abs(f(c))<1/10**10:
我一无所获。什么都不打印,也没有错误。折流板。
我很感激一些帮助
谢谢!
答案 0 :(得分:0)
最简单的方法是将for ...:
替换为while True:
。这只是删除了10次迭代限制。