如何将存储变量替换为内置变量?

2024-10-02 08:27:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Newton的方法构建一个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))

Tags: 方法store答案代码用户value时间newton
1条回答
网友
1楼 · 发布于 2024-10-02 08:27:23

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

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

相关问题 更多 >

    热门问题