def f(x):return x**3+1.1 *(x**2)+0.9*x-1.4
def error(a,b,n):return (b-a)/(2**n)
a=0;b=1;result= 0;n = 1
while 1:
fa= f(a);fb=f(b);m=(b+a)/2;fm=f(m)
# print(fm)
if fm == 0 :
result = m
break
if fa*fm > 0 :
a=m;b=b
elif fb*fm >0:
a=a;b= m
if error(a,b,n)<0.000000001 :
result =m
break
n+=1
print(result,n)
上面是二分法 下面是切线也称为 牛顿法 :
https://blog.csdn.net/weixin_33912638/article/details/89695819
下面附上 三句 有意思的python 代码。
print(''.join(__import__('random').