如何用内置替换存储变量?

时间:2019-07-09 05:57:49

标签: python algorithm math

我正在使用牛顿的方法构建第n个根计算器(不导入math),并且旨在使用户满意,以最大程度地减少计算时间。

但是,我必须存储一个变量以将先前的值与当前值进行比较,并且不确定代码是否总是会产生正确的答案(现在甚至忽略负值的根)。

总有没有不使用存储的变量并进一步提高我的计算速度吗?这是代码:

x,n,acc=[float(i) for i in input().split()]

def newton_nthroot(x,n,acc):
    value=1
    while True:
        store=value
        value += (x-(value**n))/(n*(value**(n-1)))
        if round(value,acc) == round(store,acc):
            break
    print(round(value,acc))

newton_nthroot(x,n,int(acc))

1 个答案:

答案 0 :(得分:1)

我不确定丢失store是否会真正提高速度,但是我注意到您正在通过添加value计算(((x-(value**n)))/(n*(value**(n-1)))(我们将此表达式称为{{1} }),然后将zvalue进行比较。
如果需要,您可以只计算store并将其与0进行比较:

z