Я строю калькулятор 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))