题目:不用库函数求某数的立方根。
三种方法包括pow函数、二分法、牛顿迭代法,本文重点讲下效率最高的牛顿迭代法
关于牛顿迭代法,我觉得可以参考每日一问之初识牛顿迭代法(Newton's method)这篇文章,讲解得很浅显易懂
关于这道题目千万不要把导函数求错,如果导函数求错,结果肯定错误
第一种写法:(这种写法会运行超时)
a=float(a)
print(a)
x = a
while x*x*x > a:
x = (8*x+a/(x*x))/9
print(x)
第二种写法:通过了牛客网的测试
import sys
import math
def f(x,m):
return x**3 - m
def f_derivative(x):
return 3*x**2
ep = 0.000001
for a in sys.stdin:
a=float(a)
x = a
k = 1
while ep <math.fabs(x-k):
k = x
x = x - f(x,a)/f_derivative(x)
print("%.1f"%x)
参考文章:
本文地址:https://blog.csdn.net/sanmi8276/article/details/107321739
如对本文有疑问, 点击进行留言回复!!
灰色预测模型GM(1,1)的发展系数a=0或无限接近于0的时候预测的误差以及解决办法
网友评论