我正在尝试调整以下内容,这样它就不会运行最多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:
我什么也得不到。没有打印,也没有错误。莫名其妙
谢谢你的帮助
谢谢
最简单的方法是将
for ...:
替换为while True:
。这仅仅消除了10次迭代的限制相关问题 更多 >
编程相关推荐